diff --git a/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.env.example b/.fluentci/.env.example deleted file mode 100644 index ebcd1a9..0000000 --- a/.fluentci/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -DENO_PROJECT=your-project-name -DENO_DEPLOY_TOKEN=your-deploy-token diff --git a/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/.env.example b/.fluentci/.fluentci/.env.example deleted file mode 100644 index ebcd1a9..0000000 --- a/.fluentci/.fluentci/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -DENO_PROJECT=your-project-name -DENO_DEPLOY_TOKEN=your-deploy-token diff --git a/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index fda1f5c..0000000 --- a/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a" - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index 36a4483..0000000 --- a/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/.github/workflows/example.yml b/.fluentci/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 159b202..0000000 --- a/.fluentci/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.fluentci/.github/workflows/zenith.yml b/.fluentci/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index a59113c..0000000 --- a/.fluentci/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,24 +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 lint.gql - dagger query --doc fmt.gql - dagger query --doc compile.gql - working-directory: example diff --git a/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/README.md deleted file mode 100644 index 01afc3b..0000000 --- a/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------- | --------------------------------------------------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| compile | Compile the given script into a self contained executable | | -| deploy | Deploy your app to Deno Deploy | | - -```graphql -compile( - file: String!, - output: String!, - src: String!, - target: String! -): String - -deploy( - main: String!, - noStatic: Boolean!, - project: String!, - src: String!, - token: String! -): String - -fmt(src: String!): String - -lint(src: String!): String - -test(src: String!): String -``` - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); -``` diff --git a/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 81b7695..0000000 --- a/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); diff --git a/.fluentci/.fluentci/dagger.json b/.fluentci/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/deno.json deleted file mode 100644 index 185f95c..0000000 --- a/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 1a439e8..0000000 --- a/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,234 +0,0 @@ -{ - "version": "3", - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/optimized/lodash.js": "10c4df47937ffc78548d136dd535a021df5f57182a653260d715c0690dd22978", - "https://cdn.skypack.dev/lodash": "8280de0b3efd87f06ea0eb330d15b8de32c059556023b8c6524e9eb9e4844dc0", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.205.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.205.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.205.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "9bd1df6375031727868e2a7aa24e7517d1eba916b49529a412f9a214a0d58992", - "https://esm.sh/graphql-tag@2.12.6": "132ebb1ed959bb4dac146160b0cd0fa678c7b9e6bd04f349bf4cacbfb46d0b53", - "https://esm.sh/nanoid@4.0.2": "eb872595ebf6390181971c3e477d1b0fe7ea8383d9b66ced7d09ac8f9c4cf2c7", - "https://esm.sh/stringify-tree@1.1.1": "bb68a933167b8d80b88481df0beff172fc9b645db0c32fbe7dc2d822f61ebaea", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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.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", - "https://esm.sh/v135/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v135/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "4d5a257de3627fb09c512b23fed30f1b393e29a2c13f8325e89720b8ca6673c1", - "https://esm.sh/v135/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v135/execa@8.0.1/denonext/execa.mjs": "cfcca6be54deae22c8d7c4d8be8df397a9506a54d9af9171519b9eea8daea9a5", - "https://esm.sh/v135/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "4b5b69251541833f5a1035be0e98d46bd6d02843fd7d40720577baf6caca21ce", - "https://esm.sh/v135/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v135/graphql-request@6.1.0/denonext/graphql-request.mjs": "c97af0ff1802c36ae6fdf544153140ef4d950bf164f0e5e839e71aa599ea1555", - "https://esm.sh/v135/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ebaceefc216cba74424ddc55fde9e677f6e5a3e9d556a250faa1b53483574f03", - "https://esm.sh/v135/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v135/human-signals@5.0.0/denonext/human-signals.mjs": "ab3130133ac5943273c909d7887e3c16b8374f66d72c38caeea2c44d659af023", - "https://esm.sh/v135/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v135/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v135/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v135/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v135/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v135/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v135/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v135/minizlib@2.1.2/denonext/minizlib.mjs": "67abb7d83dacd0de153cce5d03ee3bfd68988c992306ff843370b68f038b43e0", - "https://esm.sh/v135/mkdirp@1.0.4/denonext/mkdirp.mjs": "41bc43ec9478e772660e2b0edf998f27f0158388c94003b7292d8093e699eb7b", - "https://esm.sh/v135/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v135/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v135/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v135/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "4772cda227b5c18f4293db7edf53998879c75d48e776533009ce1a8daa464bf5", - "https://esm.sh/v135/onetime@6.0.0/denonext/onetime.mjs": "5326fe5207b076a7ebc96740b4c3dcec7a2522a1aa5985e3b4157c1b9cb1e2dd", - "https://esm.sh/v135/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v135/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v135/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v135/shebang-command@2.0.0/denonext/shebang-command.mjs": "245674cc2dffa2d06fcef0540b81040b626227485e5f41d76e77d386b30b18e0", - "https://esm.sh/v135/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v135/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v135/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "6cacda15ffe7dc2e1343636549956877e1bd830be5bd56587f40f94ca7becda4", - "https://esm.sh/v135/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "139c0958b1fb9387d8ae5b95941682245a3f3d9ae531f5de9638c2e9109831e0", - "https://esm.sh/v135/tar@6.2.0/denonext/tar.mjs": "e13b56d41286f4935cb29acae60a040148af6e2649326a70e04c5ca6fe5ef04d", - "https://esm.sh/v135/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v135/which@2.0.2/denonext/which.mjs": "360f7d0aa13233975c86f120e2b1aa9695252b16e287ccdc651d3123473a3482", - "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.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/.fluentci/deps.ts b/.fluentci/.fluentci/deps.ts deleted file mode 100644 index d42c6a8..0000000 --- a/.fluentci/.fluentci/deps.ts +++ /dev/null @@ -1,23 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; -export { parse } from "https://deno.land/std@0.205.0/flags/mod.ts"; -export { snakeCase, camelCase } from "https://cdn.skypack.dev/lodash"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml b/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index 6877da9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,23 +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: - - zenith - -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.8.8 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: | - dagger query --doc lint.gql - dagger query --doc fmt.gql - working-directory: example diff --git a/.fluentci/.fluentci/example/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/.fluentci/example/.fluentci/dagger.json b/.fluentci/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index afb3b64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,256 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" - }, - "npm": { - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "f95136f15787d9ccebca6bfb65f90c20ea99bc049eecf1e97a7a93ab1aee68cd", - "https://esm.sh/graphql-tag@2.12.6": "ccc89a9ceaca1c90a0a6a6f5a16a7f27ddcb775694d54d6d2bebf21c4ca0390c", - "https://esm.sh/nanoid@4.0.2": "c07546eb2eb7ad25443674c93290550bf717c9c4082493df7493ba01f206abe4", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v134/@dagger.io/dagger@0.9.3/denonext/dagger.mjs": "b65dc071629f2548d4272905e30ef78e564653c5e2792ac8313d024a0894222a", - "https://esm.sh/v134/adm-zip@0.5.10/denonext/adm-zip.mjs": "cb72de3ffa08bfed32a38f3f30fa8801ca9abb0af23961cdb95a50cbf3d7d5f8", - "https://esm.sh/v134/chownr@2.0.0/denonext/chownr.mjs": "d7282b2612a9f13c62084c76fc72cdfb20503bccce959178b77b6def14d3ffd2", - "https://esm.sh/v134/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v134/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "d40c21770a464edbe15410e12d4423123aaf01ae9f836a1bf4a8507036b3e473", - "https://esm.sh/v134/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v134/execa@8.0.1/denonext/execa.mjs": "278a76b88174ba2aa2f117cc04c4344311710df17bda0bd9e0791efd1884b186", - "https://esm.sh/v134/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "6f650802d6b8c607ec5ebfb63d1dbf90a059b5342829ccd471b0d94a381e451a", - "https://esm.sh/v134/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v134/graphql-request@6.1.0/denonext/graphql-request.mjs": "c84659c89223b5594b5ef5bfde8ed0cbc3ff4b3477aa369433e94a12f19d6401", - "https://esm.sh/v134/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "f6dfd75d3e055bb10d3fcc44bcd14c2a9c596b4abbf76a4e63a18b854ecee57b", - "https://esm.sh/v134/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v134/human-signals@5.0.0/denonext/human-signals.mjs": "8d8663d92280b1ed15bb1b1a0a79601e17f6b165335e85f94c40e56129542077", - "https://esm.sh/v134/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v134/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v134/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v134/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v134/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v134/minizlib@2.1.2/denonext/minizlib.mjs": "8a77f339dd275b82703366164dfbcd9c0089896a3ac5fe11e248e28348f4fcf9", - "https://esm.sh/v134/mkdirp@1.0.4/denonext/mkdirp.mjs": "66f5bf329f183d39374fe923604cdeab7981634cea4354a7983c61003dbd4d29", - "https://esm.sh/v134/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v134/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v134/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v134/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "f2a2940a856720c07e3b7ecc24271f5f54b4cf733085269ba2ac5ed603f7b671", - "https://esm.sh/v134/onetime@6.0.0/denonext/onetime.mjs": "1aeb698de7b5a7adecd6916696dcdd26e5ae76305433c72840b2c7a3c0562e33", - "https://esm.sh/v134/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v134/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v134/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v134/shebang-command@2.0.0/denonext/shebang-command.mjs": "f7ec13a30db7b40ebf26cce54ebaa9dd8ab0f0aea86ee3393f14eed7e0478e6f", - "https://esm.sh/v134/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v134/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a", - "https://esm.sh/v134/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v134/tar@6.2.0/denonext/tar.mjs": "8f60795202fb96f8b3965583a93aad7f34de186fa40447dce2ccdde2fbde8f8a", - "https://esm.sh/v134/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v134/which@2.0.2/denonext/which.mjs": "fcef5b237d348d13461fe8b8f488d49dc98065bb4c77e184336c755ab6a26da0", - "https://esm.sh/v134/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9689357882f365e29af1f7b2015cd08c7e01fe5d0a8363132216b6b9b905a337", - "https://nix.fluentci.io/v0.5.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/deps.ts b/.fluentci/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 6d2ca67..0000000 --- a/.fluentci/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,30 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - booleanArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc deleted file mode 100644 index 2b538b1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc +++ /dev/null @@ -1,4 +0,0 @@ -DAGGER_SRC_ROOT=$(cd ../dagger && pwd) -export _EXPERIMENTAL_DAGGER_CLI_BIN=$DAGGER_SRC_ROOT/bin/dagger -export _EXPERIMENTAL_DAGGER_RUNNER_HOST=docker-container://dagger-engine.dev -export PATH=$DAGGER_SRC_ROOT/bin:$PATH \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 9734326..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdk": "deno" -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 89cfcf3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,281 +0,0 @@ -{ - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.4": "424bddc1457c1fc4975c978425730be068b5414e92dca7a64f2d80e2123c4719", - "https://esm.sh/graphql-tag@2.12.6": "2d8f017bc251d9e7346bafc3f3aef4b65f7fdc302c6e0d085e3359f44c893068", - "https://esm.sh/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/@dagger.io/dagger@0.8.4/denonext/dagger.mjs": "a090c18168360a715fcc7ff731cc6cf940e8d08b8a5b18fa80983b47666118a9", - "https://esm.sh/v132/adm-zip@0.5.10/denonext/adm-zip.mjs": "bcdc3b866e0817ac4f1b2a3021dd0a9aafa2c65f1fd254511706b7924fa8b0b7", - "https://esm.sh/v132/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v132/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v132/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "7c92cdafd952c699fe01eb7a0c29c7cc112c546068ff757cb8832fa110499f11", - "https://esm.sh/v132/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v132/execa@7.2.0/denonext/execa.mjs": "5aa1c5a07843e56fd4ff4e0728d11941122d9f3c4bc37600971aa8e75c86d3a6", - "https://esm.sh/v132/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "18bcb6852f74c79ad50261e900a8c5daf2e7c38ce6662859e4f6f61d18daa6ed", - "https://esm.sh/v132/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v132/graphql-request@6.1.0/denonext/graphql-request.mjs": "796e05cc81ad339ef182de57452ffc00e9fef874df14fbba41338ca893499733", - "https://esm.sh/v132/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ca4302aabfeec9e4335103f1a3eeaf26277af50b828a3bcde7f262fcd4e98e1d", - "https://esm.sh/v132/graphql@16.8.0/denonext/graphql.mjs": "e10e0db78cbbef8215b2665e5ed46cbb28fc61ecdb560f9e8d304a610f51f5bc", - "https://esm.sh/v132/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v132/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v132/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v132/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v132/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v132/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v132/minizlib@2.1.2/denonext/minizlib.mjs": "2e35ea8aa6cb4caa6f9b6c5b3c8684460698c868363e134af26c28d0e76ded5f", - "https://esm.sh/v132/mkdirp@1.0.4/denonext/mkdirp.mjs": "091be31ee8a9c0f5f716b769bf81397ac70a587a5f2b0367e1e3bda26f5a8af7", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v132/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v132/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "b97d372a504bcca269c98f5d13ba0671e47230aaaaa36c3554b4a705085044df", - "https://esm.sh/v132/onetime@6.0.0/denonext/onetime.mjs": "c0be3fa6d700bb157f9a710aaf23df049f70c6a7d7e66a7d76568c5177267c51", - "https://esm.sh/v132/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v132/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v132/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v132/shebang-command@2.0.0/denonext/shebang-command.mjs": "35a3eae8fe5ccaab6598ba16e81bfc06bc1b46128028cd4cf76d63786dcd54aa", - "https://esm.sh/v132/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v132/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/v132/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v132/tar@6.2.0/denonext/tar.mjs": "f55c2f94c0ba1123048c9e3fa0af3a2bebac3af5a9895610865f05ae4d0b7f58", - "https://esm.sh/v132/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v132/which@2.0.2/denonext/which.mjs": "7482079af785ec16137592b26d53cb2808b05979559f5d0d9d036a80c6b1636e", - "https://esm.sh/v132/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "5471fa3592a8a9d1a4a3d8cacf54070b01aedaca82f14fdbbdd056a491db00ec", - "https://nix.fluentci.io/v0.5.1/deps.ts": "d2fee07fcb79b609f64f988990ad5d67c7bf17455f75dcbf1b3bbfa5de7c73b2", - "https://nix.fluentci.io/v0.5.1/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://nix.fluentci.io/zenith/deps.ts": "a8fd3aa32faea5de2779cc6494471b4fd9588f039d199ff1a1ff1b00343aef26", - "https://nix.fluentci.io/zenith/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://sdk.fluentci.io/v0.1.9/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/v0.1.9/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/v0.1.9/src/client.ts": "a8dd54861feccd11a53df39b2d45bfb3b2a8a3dff509f5700c41b517d4dff44d", - "https://sdk.fluentci.io/v0.1.9/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/v0.1.9/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.1.9/src/utils.ts": "394d131cfd465f0f3d8f876237f3bad1ab4dba73b9b7a396ee705d02aee40c16", - "https://sdk.fluentci.io/z/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/z/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/z1/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z1/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", - "https://sdk.fluentci.io/z1/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z1/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z1/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z1/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/zenith/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/zenith/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/zenith/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/zenith/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/zenith/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/zenith/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 4a9e5f6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,29 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/z1/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/z1/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/zenith/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 1146495..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.5/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 9c83256..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,215 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373", - "https://sdk.fluentci.io/v0.1.5/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.5/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.5/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.5/src/context.ts": "d711106c5f2dfb894d522d1541b18b0d81d47db603132070d6f743673924554b", - "https://sdk.fluentci.io/v0.1.5/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 95f3578..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/latest/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 3323811..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,210 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 5a9aed4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "94468e0980c59bffebea398fa56bdba9446d502d493fbe511ae36954f183fcc7", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v131/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v131/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "309b45d511c4bc2f5af3f42442fab34197982a7a83d77144722713ac7e8b4338" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index e44a1b8..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index cb3e1e5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# AWS CodePipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline fmt lint test -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 3d8b7cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Azure Pipelines - -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 976e15d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Circle CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 02e28e9..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,26 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index d0edabd..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Github Actions - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Tests -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index cb74d2b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Gitlab CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by Fluent GitLab CI - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index a902ba8..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.4/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index e1e798f..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,192 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(["ls", "-l"]) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index cb52ac4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 1949940..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.5/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 37c32c6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, exclude }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 764c7a4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,193 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 9df56ff..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,31 +0,0 @@ -import Client, { connect, uploadContext } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index 3bff5f8..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,149 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - deploy: { // args - src: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index a5ef637..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,10 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - deploy(src: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index d92fac1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, exclude }; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 3957ef3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,203 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - return result; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - }); - return result; -}; - -export const deploy = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index ac32063..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query Fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query Lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query Test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query Deploy($src: String!) { - deploy(src: $src) - } -`; diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index cdc1831..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await deploy(args.src), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/README.md b/.fluentci/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/compile.gql b/.fluentci/.fluentci/example/.fluentci/example/compile.gql deleted file mode 100644 index 0ea96cc..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "hello.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/dagger.json b/.fluentci/.fluentci/example/.fluentci/example/dagger.json deleted file mode 100644 index 6604f63..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdkRuntime": "tsiry/dagger-sdk-deno" -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/deno.json b/.fluentci/.fluentci/example/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/example/fmt.gql b/.fluentci/.fluentci/example/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/hello.ts b/.fluentci/.fluentci/example/.fluentci/example/hello.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/hello.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/.fluentci/example/.fluentci/example/lint.gql b/.fluentci/.fluentci/example/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index d935169..0000000 --- a/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,161 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - compile: string | null; // String - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - compile: 'String' - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - compile: { // args - file: string; // String! - output: string; // String! - src: string; // String! - target: string; // String! - } - deploy: { // args - main: string; // String! - noStatic: boolean; // Boolean! - project: string; // String! - src: string; // String! - token: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/.fluentci/example/.fluentci/schema.graphql b/.fluentci/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index 15afcd4..0000000 --- a/.fluentci/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,11 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - compile(file: String!, output: String!, src: String!, target: String!): String - deploy(main: String!, noStatic: Boolean!, project: String!, src: String!, token: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index a64705a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, compile, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude }; diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 8d26faf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,263 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const compile = async ( - src = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]); - - await ctr.file(`/app/${output}`).export(`./${output}`); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const deploy = async ( - src = ".", - token?: string, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN") && !token) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN") || token! - ) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index 0d30732..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query deploy( - $src: String! - $token: String! - $project: String! - $main: String! - $noStatic: Boolean! - ) { - deploy( - src: $src - token: $token - project: $project - main: $main - noStatic: $noStatic - ) - } -`; - -export const compile = gql` - query compile( - $src: String! - $file: String! - $output: String! - $target: String! - ) { - compile(src: $src, file: $file, output: $output, target: $target) - } -`; diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index 87f275c..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - booleanArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy, compile } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - token: nonNull(stringArg()), - project: nonNull(stringArg()), - main: nonNull(stringArg()), - noStatic: nonNull(booleanArg()), - }, - resolve: async (_root, args, _ctx) => - await deploy( - args.src, - args.token, - args.project, - args.main, - args.noStatic - ), - }); - t.string("compile", { - args: { - src: nonNull(stringArg()), - file: nonNull(stringArg()), - output: nonNull(stringArg()), - target: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => - await compile(args.src, args.file, args.output, args.target), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/.fluentci/example/README.md b/.fluentci/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/.fluentci/example/compile.gql b/.fluentci/.fluentci/example/compile.gql deleted file mode 100644 index 53d858d..0000000 --- a/.fluentci/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "main.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/.fluentci/example/dagger.json b/.fluentci/.fluentci/example/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/.fluentci/example/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/deno.json b/.fluentci/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/example/fmt.gql b/.fluentci/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/.fluentci/example/lint.gql b/.fluentci/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/.fluentci/example/main.ts b/.fluentci/.fluentci/example/main.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/.fluentci/example/main.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/.fluentci/example/main.tsx b/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 0b6b6c1..0000000 --- a/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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 - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index ea2e232..0000000 --- a/.fluentci/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/.fluentci/fixtures/buildspec.yml b/.fluentci/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 640fb2d..0000000 --- a/.fluentci/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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 - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/.fluentci/fixtures/config.yml b/.fluentci/.fluentci/fixtures/config.yml deleted file mode 100644 index bc81c99..0000000 --- a/.fluentci/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/.fluentci/fixtures/workflow.yml b/.fluentci/.fluentci/fixtures/workflow.yml deleted file mode 100644 index ebc92ad..0000000 --- a/.fluentci/.fluentci/fixtures/workflow.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@v2 - - 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/.fluentci/.fluentci/flake.lock b/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/.fluentci/flake.nix b/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/.fluentci/import_map.json b/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/.fluentci/mod.ts b/.fluentci/.fluentci/mod.ts deleted file mode 100644 index fbc1f17..0000000 --- a/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./src/dagger/index.ts"; diff --git a/.fluentci/.fluentci/src/aws/README.md b/.fluentci/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/.fluentci/src/aws/config.ts b/.fluentci/.fluentci/src/aws/config.ts deleted file mode 100644 index 879c50e..0000000 --- a/.fluentci/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/.fluentci/src/aws/config_test.ts b/.fluentci/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/src/aws/init.ts b/.fluentci/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/.fluentci/src/azure/README.md b/.fluentci/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/.fluentci/src/azure/config.ts b/.fluentci/.fluentci/src/azure/config.ts deleted file mode 100644 index 71b39a0..0000000 --- a/.fluentci/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/.fluentci/src/azure/config_test.ts b/.fluentci/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/src/azure/init.ts b/.fluentci/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/.fluentci/src/circleci/README.md b/.fluentci/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/.fluentci/src/circleci/config.ts b/.fluentci/.fluentci/src/circleci/config.ts deleted file mode 100644 index acb64fa..0000000 --- a/.fluentci/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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 -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/.fluentci/src/circleci/config_test.ts b/.fluentci/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/src/circleci/init.ts b/.fluentci/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index c2508d8..0000000 --- a/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { - fmt, - lint, - test, - deploy, - compile, - exclude, - jobDescriptions, -} from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude, jobDescriptions }; diff --git a/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 61a5638..0000000 --- a/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,284 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl", "perl-utils"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client - .pipeline(pipeline) - .container() - .from("denoland/deno:alpine") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "perl-utils"]); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const compile = async ( - src = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -) => { - await connect(async (client) => { - const context = client.host().directory(src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - Deno.env.get("TARGET") || target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withMountedCache("/assets", client.cacheVolume("gh-release-assets")) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]) - .withExec([ - "tar", - "czvf", - `/assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz`, - output, - ]) - .withExec([ - "sh", - "-c", - `shasum -a 256 /assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz > /assets/${output}_${ - Deno.env.get("TAG") || "" - }_${Deno.env.get("TARGET" || target)}.tar.gz.sha256`, - ]); - - await ctr.file(`/app/${output}`).export(`./${output}`); - - await ctr.stdout(); - }); - - return "Done"; -}; - -export const deploy = async ( - src = ".", - token?: string, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN") && !token) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN") || token! - ) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index 59f82f5..0000000 --- a/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,17 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { parse, camelCase, snakeCase } from "../../deps.ts"; - -const args = parse(Deno.args.map((x) => x.split(" ")).flat()); - -if (!Array.isArray(Deno.args)) { - for (const param of Object.keys(args) - .filter((x) => x !== "_") - .map((x) => snakeCase(x).toUpperCase())) { - Deno.env.set(param, args[camelCase(param)]); - } -} - -await pipeline( - ".", - Array.isArray(Deno.args) ? Deno.args : (args._ as string[]) -); diff --git a/.fluentci/.fluentci/src/github/README.md b/.fluentci/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/.fluentci/src/github/config.ts b/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 017540c..0000000 --- a/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - name: "Setup Fluent CI", - uses: "fluentci-io/setup-fluentci@v2", - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/.fluentci/src/github/config_test.ts b/.fluentci/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/src/github/init.ts b/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/.fluentci/src/gitlab/README.md b/.fluentci/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/.fluentci/src/gitlab/config.ts b/.fluentci/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 5124081..0000000 --- a/.fluentci/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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 - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/.fluentci/src/gitlab/config_test.ts b/.fluentci/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/.fluentci/src/gitlab/init.ts b/.fluentci/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/.github/workflows/ci.yml b/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index 36a4483..0000000 --- a/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/.github/workflows/example.yml b/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 159b202..0000000 --- a/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/.github/workflows/zenith.yml b/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index a59113c..0000000 --- a/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,24 +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 lint.gql - dagger query --doc fmt.gql - dagger query --doc compile.gql - working-directory: example diff --git a/.fluentci/.gitignore b/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/.vscode/settings.json b/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/CONTRIBUTING.md b/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/LICENSE b/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/README.md b/.fluentci/README.md deleted file mode 100644 index 062e93e..0000000 --- a/.fluentci/README.md +++ /dev/null @@ -1,103 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -![Made with VHS](https://vhs.charm.sh/vhs-3itysSnE548cLEyRNkuLAo.gif) - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Dagger Module - -Use as a [Dagger](https://dagger.io) module: - -```bash -dagger mod install github.com/fluent-ci-templates/deno-pipeline@mod -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------- | --------------------------------------------------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| compile | Compile the given script into a self contained executable | | -| deploy | Deploy your app to Deno Deploy | | - -```typescript -lint( - src: string | Directory | undefined = "." -): Promise - -fmt( - src: string | Directory | undefined = "." -): Promise - -test( - src: string | Directory | undefined = ".", - ignore: string[] = [] -): Promise - -compile( - src: string | Directory | undefined = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -): Promise - -deploy( - src: string | Directory | undefined = ".", - token?: string | Secret, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -): Promise -``` - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); -``` diff --git a/.fluentci/ci.ts b/.fluentci/ci.ts deleted file mode 100644 index 81b7695..0000000 --- a/.fluentci/ci.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); diff --git a/.fluentci/dagger.json b/.fluentci/dagger.json deleted file mode 100644 index b270f44..0000000 --- a/.fluentci/dagger.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "github", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main", - "version": "v0.1.0", - "description": "", - "author": "Tsiry Sandratraina", - "license": "MIT" -} \ No newline at end of file diff --git a/.fluentci/deno.json b/.fluentci/deno.json deleted file mode 100644 index 185f95c..0000000 --- a/.fluentci/deno.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/deno.lock b/.fluentci/deno.lock deleted file mode 100644 index 6b4223c..0000000 --- a/.fluentci/deno.lock +++ /dev/null @@ -1,245 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:typescript": "npm:typescript@5.3.2" - }, - "npm": { - "typescript@5.3.2": { - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/optimized/lodash.js": "10c4df47937ffc78548d136dd535a021df5f57182a653260d715c0690dd22978", - "https://cdn.skypack.dev/lodash": "8280de0b3efd87f06ea0eb330d15b8de32c059556023b8c6524e9eb9e4844dc0", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.205.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.205.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.205.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "9bd1df6375031727868e2a7aa24e7517d1eba916b49529a412f9a214a0d58992", - "https://esm.sh/graphql-tag@2.12.6": "132ebb1ed959bb4dac146160b0cd0fa678c7b9e6bd04f349bf4cacbfb46d0b53", - "https://esm.sh/nanoid@4.0.2": "eb872595ebf6390181971c3e477d1b0fe7ea8383d9b66ced7d09ac8f9c4cf2c7", - "https://esm.sh/stringify-tree@1.1.1": "bb68a933167b8d80b88481df0beff172fc9b645db0c32fbe7dc2d822f61ebaea", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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.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", - "https://esm.sh/v135/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v135/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "4d5a257de3627fb09c512b23fed30f1b393e29a2c13f8325e89720b8ca6673c1", - "https://esm.sh/v135/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v135/execa@8.0.1/denonext/execa.mjs": "cfcca6be54deae22c8d7c4d8be8df397a9506a54d9af9171519b9eea8daea9a5", - "https://esm.sh/v135/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "4b5b69251541833f5a1035be0e98d46bd6d02843fd7d40720577baf6caca21ce", - "https://esm.sh/v135/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v135/graphql-request@6.1.0/denonext/graphql-request.mjs": "c97af0ff1802c36ae6fdf544153140ef4d950bf164f0e5e839e71aa599ea1555", - "https://esm.sh/v135/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ebaceefc216cba74424ddc55fde9e677f6e5a3e9d556a250faa1b53483574f03", - "https://esm.sh/v135/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v135/human-signals@5.0.0/denonext/human-signals.mjs": "ab3130133ac5943273c909d7887e3c16b8374f66d72c38caeea2c44d659af023", - "https://esm.sh/v135/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v135/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v135/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v135/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v135/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v135/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v135/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v135/minizlib@2.1.2/denonext/minizlib.mjs": "67abb7d83dacd0de153cce5d03ee3bfd68988c992306ff843370b68f038b43e0", - "https://esm.sh/v135/mkdirp@1.0.4/denonext/mkdirp.mjs": "41bc43ec9478e772660e2b0edf998f27f0158388c94003b7292d8093e699eb7b", - "https://esm.sh/v135/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v135/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v135/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v135/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "4772cda227b5c18f4293db7edf53998879c75d48e776533009ce1a8daa464bf5", - "https://esm.sh/v135/onetime@6.0.0/denonext/onetime.mjs": "5326fe5207b076a7ebc96740b4c3dcec7a2522a1aa5985e3b4157c1b9cb1e2dd", - "https://esm.sh/v135/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v135/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v135/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v135/shebang-command@2.0.0/denonext/shebang-command.mjs": "245674cc2dffa2d06fcef0540b81040b626227485e5f41d76e77d386b30b18e0", - "https://esm.sh/v135/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v135/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v135/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "6cacda15ffe7dc2e1343636549956877e1bd830be5bd56587f40f94ca7becda4", - "https://esm.sh/v135/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "139c0958b1fb9387d8ae5b95941682245a3f3d9ae531f5de9638c2e9109831e0", - "https://esm.sh/v135/tar@6.2.0/denonext/tar.mjs": "e13b56d41286f4935cb29acae60a040148af6e2649326a70e04c5ca6fe5ef04d", - "https://esm.sh/v135/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v135/which@2.0.2/denonext/which.mjs": "360f7d0aa13233975c86f120e2b1aa9695252b16e287ccdc651d3123473a3482", - "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.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/deps.ts b/.fluentci/deps.ts deleted file mode 100644 index 0601a43..0000000 --- a/.fluentci/deps.ts +++ /dev/null @@ -1,49 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { Client } from "./sdk/client.gen.ts"; -export default Client; - -export type { DirectoryID, SecretID } from "./sdk/client.gen.ts"; -export { Directory, Secret, File } from "./sdk/client.gen.ts"; -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; -export { parse } from "https://deno.land/std@0.205.0/flags/mod.ts"; -export { snakeCase, camelCase } from "https://cdn.skypack.dev/lodash"; - -export { - ClientError, - GraphQLClient, -} from "https://esm.sh/v128/graphql-request@6.1.0"; -export { - DaggerSDKError, - UnknownDaggerError, - DockerImageRefValidationError, - EngineSessionConnectParamsParseError, - ExecError, - GraphQLRequestError, - InitEngineSessionBinaryError, - TooManyNestedObjectsError, - EngineSessionError, - EngineSessionConnectionTimeoutError, - NotAwaitedRequestError, - ERROR_CODES, -} from "https://esm.sh/@dagger.io/dagger@0.9.3"; - -export type { - CallbackFct, - ConnectOpts, -} from "https://sdk.fluentci.io/v0.3.0/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.env.example b/.fluentci/example/.fluentci/.env.example deleted file mode 100644 index ebcd1a9..0000000 --- a/.fluentci/example/.fluentci/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -DENO_PROJECT=your-project-name -DENO_DEPLOY_TOKEN=your-deploy-token diff --git a/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/.env.example b/.fluentci/example/.fluentci/.fluentci/.env.example deleted file mode 100644 index ebcd1a9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.env.example +++ /dev/null @@ -1,2 +0,0 @@ -DENO_PROJECT=your-project-name -DENO_DEPLOY_TOKEN=your-deploy-token diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index fda1f5c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index 36a4483..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 159b202..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/.github/workflows/zenith.yml b/.fluentci/example/.fluentci/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index a59113c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,24 +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 lint.gql - dagger query --doc fmt.gql - dagger query --doc compile.gql - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 01afc3b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------- | --------------------------------------------------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| compile | Compile the given script into a self contained executable | | -| deploy | Deploy your app to Deno Deploy | | - -```graphql -compile( - file: String!, - output: String!, - src: String!, - target: String! -): String - -deploy( - main: String!, - noStatic: Boolean!, - project: String!, - src: String!, - token: String! -): String - -fmt(src: String!): String - -lint(src: String!): String - -test(src: String!): String -``` - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 81b7695..0000000 --- a/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); diff --git a/.fluentci/example/.fluentci/.fluentci/dagger.json b/.fluentci/example/.fluentci/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 9bddc42..0000000 --- a/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,261 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" - }, - "npm": { - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/optimized/lodash.js": "10c4df47937ffc78548d136dd535a021df5f57182a653260d715c0690dd22978", - "https://cdn.skypack.dev/lodash": "8280de0b3efd87f06ea0eb330d15b8de32c059556023b8c6524e9eb9e4844dc0", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.205.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.205.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.205.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "f95136f15787d9ccebca6bfb65f90c20ea99bc049eecf1e97a7a93ab1aee68cd", - "https://esm.sh/graphql-tag@2.12.6": "ccc89a9ceaca1c90a0a6a6f5a16a7f27ddcb775694d54d6d2bebf21c4ca0390c", - "https://esm.sh/nanoid@4.0.2": "c07546eb2eb7ad25443674c93290550bf717c9c4082493df7493ba01f206abe4", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v134/@dagger.io/dagger@0.9.3/denonext/dagger.mjs": "b65dc071629f2548d4272905e30ef78e564653c5e2792ac8313d024a0894222a", - "https://esm.sh/v134/adm-zip@0.5.10/denonext/adm-zip.mjs": "cb72de3ffa08bfed32a38f3f30fa8801ca9abb0af23961cdb95a50cbf3d7d5f8", - "https://esm.sh/v134/chownr@2.0.0/denonext/chownr.mjs": "d7282b2612a9f13c62084c76fc72cdfb20503bccce959178b77b6def14d3ffd2", - "https://esm.sh/v134/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v134/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "d40c21770a464edbe15410e12d4423123aaf01ae9f836a1bf4a8507036b3e473", - "https://esm.sh/v134/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v134/execa@8.0.1/denonext/execa.mjs": "278a76b88174ba2aa2f117cc04c4344311710df17bda0bd9e0791efd1884b186", - "https://esm.sh/v134/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "6f650802d6b8c607ec5ebfb63d1dbf90a059b5342829ccd471b0d94a381e451a", - "https://esm.sh/v134/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v134/graphql-request@6.1.0/denonext/graphql-request.mjs": "c84659c89223b5594b5ef5bfde8ed0cbc3ff4b3477aa369433e94a12f19d6401", - "https://esm.sh/v134/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "f6dfd75d3e055bb10d3fcc44bcd14c2a9c596b4abbf76a4e63a18b854ecee57b", - "https://esm.sh/v134/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v134/human-signals@5.0.0/denonext/human-signals.mjs": "8d8663d92280b1ed15bb1b1a0a79601e17f6b165335e85f94c40e56129542077", - "https://esm.sh/v134/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v134/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v134/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v134/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v134/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v134/minizlib@2.1.2/denonext/minizlib.mjs": "8a77f339dd275b82703366164dfbcd9c0089896a3ac5fe11e248e28348f4fcf9", - "https://esm.sh/v134/mkdirp@1.0.4/denonext/mkdirp.mjs": "66f5bf329f183d39374fe923604cdeab7981634cea4354a7983c61003dbd4d29", - "https://esm.sh/v134/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v134/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v134/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v134/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "f2a2940a856720c07e3b7ecc24271f5f54b4cf733085269ba2ac5ed603f7b671", - "https://esm.sh/v134/onetime@6.0.0/denonext/onetime.mjs": "1aeb698de7b5a7adecd6916696dcdd26e5ae76305433c72840b2c7a3c0562e33", - "https://esm.sh/v134/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v134/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v134/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v134/shebang-command@2.0.0/denonext/shebang-command.mjs": "f7ec13a30db7b40ebf26cce54ebaa9dd8ab0f0aea86ee3393f14eed7e0478e6f", - "https://esm.sh/v134/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v134/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a", - "https://esm.sh/v134/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v134/tar@6.2.0/denonext/tar.mjs": "8f60795202fb96f8b3965583a93aad7f34de186fa40447dce2ccdde2fbde8f8a", - "https://esm.sh/v134/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v134/which@2.0.2/denonext/which.mjs": "fcef5b237d348d13461fe8b8f488d49dc98065bb4c77e184336c755ab6a26da0", - "https://esm.sh/v134/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9689357882f365e29af1f7b2015cd08c7e01fe5d0a8363132216b6b9b905a337", - "https://nix.fluentci.io/v0.5.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/deps.ts b/.fluentci/example/.fluentci/.fluentci/deps.ts deleted file mode 100644 index e5bcbda..0000000 --- a/.fluentci/example/.fluentci/.fluentci/deps.ts +++ /dev/null @@ -1,32 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - booleanArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; -export { parse } from "https://deno.land/std@0.205.0/flags/mod.ts"; -export { snakeCase, camelCase } from "https://cdn.skypack.dev/lodash"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index 6877da9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,23 +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: - - zenith - -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.8.8 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: | - dagger query --doc lint.gql - dagger query --doc fmt.gql - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/dagger.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index afb3b64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,256 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" - }, - "npm": { - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "f95136f15787d9ccebca6bfb65f90c20ea99bc049eecf1e97a7a93ab1aee68cd", - "https://esm.sh/graphql-tag@2.12.6": "ccc89a9ceaca1c90a0a6a6f5a16a7f27ddcb775694d54d6d2bebf21c4ca0390c", - "https://esm.sh/nanoid@4.0.2": "c07546eb2eb7ad25443674c93290550bf717c9c4082493df7493ba01f206abe4", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v134/@dagger.io/dagger@0.9.3/denonext/dagger.mjs": "b65dc071629f2548d4272905e30ef78e564653c5e2792ac8313d024a0894222a", - "https://esm.sh/v134/adm-zip@0.5.10/denonext/adm-zip.mjs": "cb72de3ffa08bfed32a38f3f30fa8801ca9abb0af23961cdb95a50cbf3d7d5f8", - "https://esm.sh/v134/chownr@2.0.0/denonext/chownr.mjs": "d7282b2612a9f13c62084c76fc72cdfb20503bccce959178b77b6def14d3ffd2", - "https://esm.sh/v134/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v134/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "d40c21770a464edbe15410e12d4423123aaf01ae9f836a1bf4a8507036b3e473", - "https://esm.sh/v134/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v134/execa@8.0.1/denonext/execa.mjs": "278a76b88174ba2aa2f117cc04c4344311710df17bda0bd9e0791efd1884b186", - "https://esm.sh/v134/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "6f650802d6b8c607ec5ebfb63d1dbf90a059b5342829ccd471b0d94a381e451a", - "https://esm.sh/v134/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v134/graphql-request@6.1.0/denonext/graphql-request.mjs": "c84659c89223b5594b5ef5bfde8ed0cbc3ff4b3477aa369433e94a12f19d6401", - "https://esm.sh/v134/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "f6dfd75d3e055bb10d3fcc44bcd14c2a9c596b4abbf76a4e63a18b854ecee57b", - "https://esm.sh/v134/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v134/human-signals@5.0.0/denonext/human-signals.mjs": "8d8663d92280b1ed15bb1b1a0a79601e17f6b165335e85f94c40e56129542077", - "https://esm.sh/v134/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v134/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v134/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v134/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v134/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v134/minizlib@2.1.2/denonext/minizlib.mjs": "8a77f339dd275b82703366164dfbcd9c0089896a3ac5fe11e248e28348f4fcf9", - "https://esm.sh/v134/mkdirp@1.0.4/denonext/mkdirp.mjs": "66f5bf329f183d39374fe923604cdeab7981634cea4354a7983c61003dbd4d29", - "https://esm.sh/v134/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v134/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v134/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v134/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "f2a2940a856720c07e3b7ecc24271f5f54b4cf733085269ba2ac5ed603f7b671", - "https://esm.sh/v134/onetime@6.0.0/denonext/onetime.mjs": "1aeb698de7b5a7adecd6916696dcdd26e5ae76305433c72840b2c7a3c0562e33", - "https://esm.sh/v134/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v134/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v134/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v134/shebang-command@2.0.0/denonext/shebang-command.mjs": "f7ec13a30db7b40ebf26cce54ebaa9dd8ab0f0aea86ee3393f14eed7e0478e6f", - "https://esm.sh/v134/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v134/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a", - "https://esm.sh/v134/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v134/tar@6.2.0/denonext/tar.mjs": "8f60795202fb96f8b3965583a93aad7f34de186fa40447dce2ccdde2fbde8f8a", - "https://esm.sh/v134/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v134/which@2.0.2/denonext/which.mjs": "fcef5b237d348d13461fe8b8f488d49dc98065bb4c77e184336c755ab6a26da0", - "https://esm.sh/v134/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9689357882f365e29af1f7b2015cd08c7e01fe5d0a8363132216b6b9b905a337", - "https://nix.fluentci.io/v0.5.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deps.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 6d2ca67..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,30 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - booleanArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc deleted file mode 100644 index 2b538b1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.envrc +++ /dev/null @@ -1,4 +0,0 @@ -DAGGER_SRC_ROOT=$(cd ../dagger && pwd) -export _EXPERIMENTAL_DAGGER_CLI_BIN=$DAGGER_SRC_ROOT/bin/dagger -export _EXPERIMENTAL_DAGGER_RUNNER_HOST=docker-container://dagger-engine.dev -export PATH=$DAGGER_SRC_ROOT/bin:$PATH \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 9734326..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdk": "deno" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 89cfcf3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,281 +0,0 @@ -{ - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.4": "424bddc1457c1fc4975c978425730be068b5414e92dca7a64f2d80e2123c4719", - "https://esm.sh/graphql-tag@2.12.6": "2d8f017bc251d9e7346bafc3f3aef4b65f7fdc302c6e0d085e3359f44c893068", - "https://esm.sh/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/@dagger.io/dagger@0.8.4/denonext/dagger.mjs": "a090c18168360a715fcc7ff731cc6cf940e8d08b8a5b18fa80983b47666118a9", - "https://esm.sh/v132/adm-zip@0.5.10/denonext/adm-zip.mjs": "bcdc3b866e0817ac4f1b2a3021dd0a9aafa2c65f1fd254511706b7924fa8b0b7", - "https://esm.sh/v132/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v132/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v132/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "7c92cdafd952c699fe01eb7a0c29c7cc112c546068ff757cb8832fa110499f11", - "https://esm.sh/v132/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v132/execa@7.2.0/denonext/execa.mjs": "5aa1c5a07843e56fd4ff4e0728d11941122d9f3c4bc37600971aa8e75c86d3a6", - "https://esm.sh/v132/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "18bcb6852f74c79ad50261e900a8c5daf2e7c38ce6662859e4f6f61d18daa6ed", - "https://esm.sh/v132/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v132/graphql-request@6.1.0/denonext/graphql-request.mjs": "796e05cc81ad339ef182de57452ffc00e9fef874df14fbba41338ca893499733", - "https://esm.sh/v132/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ca4302aabfeec9e4335103f1a3eeaf26277af50b828a3bcde7f262fcd4e98e1d", - "https://esm.sh/v132/graphql@16.8.0/denonext/graphql.mjs": "e10e0db78cbbef8215b2665e5ed46cbb28fc61ecdb560f9e8d304a610f51f5bc", - "https://esm.sh/v132/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v132/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v132/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v132/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v132/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v132/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v132/minizlib@2.1.2/denonext/minizlib.mjs": "2e35ea8aa6cb4caa6f9b6c5b3c8684460698c868363e134af26c28d0e76ded5f", - "https://esm.sh/v132/mkdirp@1.0.4/denonext/mkdirp.mjs": "091be31ee8a9c0f5f716b769bf81397ac70a587a5f2b0367e1e3bda26f5a8af7", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v132/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v132/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "b97d372a504bcca269c98f5d13ba0671e47230aaaaa36c3554b4a705085044df", - "https://esm.sh/v132/onetime@6.0.0/denonext/onetime.mjs": "c0be3fa6d700bb157f9a710aaf23df049f70c6a7d7e66a7d76568c5177267c51", - "https://esm.sh/v132/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v132/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v132/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v132/shebang-command@2.0.0/denonext/shebang-command.mjs": "35a3eae8fe5ccaab6598ba16e81bfc06bc1b46128028cd4cf76d63786dcd54aa", - "https://esm.sh/v132/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v132/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/v132/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v132/tar@6.2.0/denonext/tar.mjs": "f55c2f94c0ba1123048c9e3fa0af3a2bebac3af5a9895610865f05ae4d0b7f58", - "https://esm.sh/v132/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v132/which@2.0.2/denonext/which.mjs": "7482079af785ec16137592b26d53cb2808b05979559f5d0d9d036a80c6b1636e", - "https://esm.sh/v132/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "5471fa3592a8a9d1a4a3d8cacf54070b01aedaca82f14fdbbdd056a491db00ec", - "https://nix.fluentci.io/v0.5.1/deps.ts": "d2fee07fcb79b609f64f988990ad5d67c7bf17455f75dcbf1b3bbfa5de7c73b2", - "https://nix.fluentci.io/v0.5.1/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://nix.fluentci.io/zenith/deps.ts": "a8fd3aa32faea5de2779cc6494471b4fd9588f039d199ff1a1ff1b00343aef26", - "https://nix.fluentci.io/zenith/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://sdk.fluentci.io/v0.1.9/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/v0.1.9/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/v0.1.9/src/client.ts": "a8dd54861feccd11a53df39b2d45bfb3b2a8a3dff509f5700c41b517d4dff44d", - "https://sdk.fluentci.io/v0.1.9/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/v0.1.9/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.1.9/src/utils.ts": "394d131cfd465f0f3d8f876237f3bad1ab4dba73b9b7a396ee705d02aee40c16", - "https://sdk.fluentci.io/z/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/z/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/z1/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z1/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", - "https://sdk.fluentci.io/z1/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z1/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z1/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z1/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/zenith/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/zenith/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/zenith/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/zenith/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/zenith/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/zenith/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 4a9e5f6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,29 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/z1/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/z1/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/zenith/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 1146495..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.5/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 9c83256..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,215 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373", - "https://sdk.fluentci.io/v0.1.5/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.5/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.5/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.5/src/context.ts": "d711106c5f2dfb894d522d1541b18b0d81d47db603132070d6f743673924554b", - "https://sdk.fluentci.io/v0.1.5/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 95f3578..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/latest/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 3323811..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,210 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 5a9aed4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "94468e0980c59bffebea398fa56bdba9446d502d493fbe511ae36954f183fcc7", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v131/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v131/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "309b45d511c4bc2f5af3f42442fab34197982a7a83d77144722713ac7e8b4338" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index e44a1b8..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index cb3e1e5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# AWS CodePipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline fmt lint test -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 3d8b7cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Azure Pipelines - -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 976e15d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Circle CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 02e28e9..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,26 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index d0edabd..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Github Actions - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Tests -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index cb74d2b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Gitlab CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by Fluent GitLab CI - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index a902ba8..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.4/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index e1e798f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,192 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(["ls", "-l"]) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index cb52ac4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 1949940..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.5/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 37c32c6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, exclude }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 764c7a4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,193 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 9df56ff..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,31 +0,0 @@ -import Client, { connect, uploadContext } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index 3bff5f8..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,149 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - deploy: { // args - src: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index a5ef637..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,10 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - deploy(src: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index d92fac1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, exclude }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 3957ef3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,203 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - return result; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - }); - return result; -}; - -export const deploy = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index ac32063..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query Fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query Lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query Test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query Deploy($src: String!) { - deploy(src: $src) - } -`; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index cdc1831..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await deploy(args.src), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/compile.gql b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/compile.gql deleted file mode 100644 index 0ea96cc..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "hello.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/dagger.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/dagger.json deleted file mode 100644 index 6604f63..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdkRuntime": "tsiry/dagger-sdk-deno" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/deno.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/fmt.gql b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/hello.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/hello.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/hello.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/lint.gql b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index d935169..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,161 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - compile: string | null; // String - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - compile: 'String' - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - compile: { // args - file: string; // String! - output: string; // String! - src: string; // String! - target: string; // String! - } - deploy: { // args - main: string; // String! - noStatic: boolean; // Boolean! - project: string; // String! - src: string; // String! - token: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/schema.graphql b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index 15afcd4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,11 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - compile(file: String!, output: String!, src: String!, target: String!): String - deploy(main: String!, noStatic: Boolean!, project: String!, src: String!, token: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index a64705a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, compile, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude }; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 8d26faf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,263 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const compile = async ( - src = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]); - - await ctr.file(`/app/${output}`).export(`./${output}`); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const deploy = async ( - src = ".", - token?: string, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN") && !token) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN") || token! - ) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index 0d30732..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query deploy( - $src: String! - $token: String! - $project: String! - $main: String! - $noStatic: Boolean! - ) { - deploy( - src: $src - token: $token - project: $project - main: $main - noStatic: $noStatic - ) - } -`; - -export const compile = gql` - query compile( - $src: String! - $file: String! - $output: String! - $target: String! - ) { - compile(src: $src, file: $file, output: $output, target: $target) - } -`; diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index 87f275c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - booleanArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy, compile } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - token: nonNull(stringArg()), - project: nonNull(stringArg()), - main: nonNull(stringArg()), - noStatic: nonNull(booleanArg()), - }, - resolve: async (_root, args, _ctx) => - await deploy( - args.src, - args.token, - args.project, - args.main, - args.noStatic - ), - }); - t.string("compile", { - args: { - src: nonNull(stringArg()), - file: nonNull(stringArg()), - output: nonNull(stringArg()), - target: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => - await compile(args.src, args.file, args.output, args.target), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/compile.gql b/.fluentci/example/.fluentci/.fluentci/example/compile.gql deleted file mode 100644 index 53d858d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "main.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/dagger.json b/.fluentci/example/.fluentci/.fluentci/example/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/deno.json b/.fluentci/example/.fluentci/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/example/fmt.gql b/.fluentci/example/.fluentci/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/lint.gql b/.fluentci/example/.fluentci/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/example/main.ts b/.fluentci/example/.fluentci/.fluentci/example/main.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/main.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 0b6b6c1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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 - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index ea2e232..0000000 --- a/.fluentci/example/.fluentci/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 640fb2d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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 - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/.fluentci/fixtures/config.yml deleted file mode 100644 index bc81c99..0000000 --- a/.fluentci/example/.fluentci/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/.fluentci/fixtures/workflow.yml deleted file mode 100644 index ebc92ad..0000000 --- a/.fluentci/example/.fluentci/.fluentci/fixtures/workflow.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@v2 - - 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/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/gen/nexus.ts b/.fluentci/example/.fluentci/.fluentci/gen/nexus.ts deleted file mode 100644 index d935169..0000000 --- a/.fluentci/example/.fluentci/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,161 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - compile: string | null; // String - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - compile: 'String' - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - compile: { // args - file: string; // String! - output: string; // String! - src: string; // String! - target: string; // String! - } - deploy: { // args - main: string; // String! - noStatic: boolean; // Boolean! - project: string; // String! - src: string; // String! - token: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/example/.fluentci/.fluentci/schema.graphql b/.fluentci/example/.fluentci/.fluentci/schema.graphql deleted file mode 100644 index 15afcd4..0000000 --- a/.fluentci/example/.fluentci/.fluentci/schema.graphql +++ /dev/null @@ -1,11 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - compile(file: String!, output: String!, src: String!, target: String!): String - deploy(main: String!, noStatic: Boolean!, project: String!, src: String!, token: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/.fluentci/src/aws/config.ts deleted file mode 100644 index 879c50e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/.fluentci/src/azure/config.ts deleted file mode 100644 index 71b39a0..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/.fluentci/src/circleci/config.ts deleted file mode 100644 index acb64fa..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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 -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index a64705a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, compile, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude }; diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 61a5638..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,284 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl", "perl-utils"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client - .pipeline(pipeline) - .container() - .from("denoland/deno:alpine") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "perl-utils"]); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const compile = async ( - src = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -) => { - await connect(async (client) => { - const context = client.host().directory(src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - Deno.env.get("TARGET") || target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withMountedCache("/assets", client.cacheVolume("gh-release-assets")) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]) - .withExec([ - "tar", - "czvf", - `/assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz`, - output, - ]) - .withExec([ - "sh", - "-c", - `shasum -a 256 /assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz > /assets/${output}_${ - Deno.env.get("TAG") || "" - }_${Deno.env.get("TARGET" || target)}.tar.gz.sha256`, - ]); - - await ctr.file(`/app/${output}`).export(`./${output}`); - - await ctr.stdout(); - }); - - return "Done"; -}; - -export const deploy = async ( - src = ".", - token?: string, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN") && !token) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN") || token! - ) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/queries.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/queries.ts deleted file mode 100644 index 6a67a4c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query Fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query Lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query Test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query Deploy( - $src: String! - $token: String! - $project: String! - $main: String! - $noStatic: Boolean! - ) { - deploy( - src: $src - token: $token - project: $project - main: $main - noStatic: $noStatic - ) - } -`; - -export const compile = gql` - query Compile( - $src: String! - $file: String! - $output: String! - $target: String! - ) { - compile(src: $src, file: $file, output: $output, target: $target) - } -`; diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index 59f82f5..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,17 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { parse, camelCase, snakeCase } from "../../deps.ts"; - -const args = parse(Deno.args.map((x) => x.split(" ")).flat()); - -if (!Array.isArray(Deno.args)) { - for (const param of Object.keys(args) - .filter((x) => x !== "_") - .map((x) => snakeCase(x).toUpperCase())) { - Deno.env.set(param, args[camelCase(param)]); - } -} - -await pipeline( - ".", - Array.isArray(Deno.args) ? Deno.args : (args._ as string[]) -); diff --git a/.fluentci/example/.fluentci/.fluentci/src/dagger/schema.ts b/.fluentci/example/.fluentci/.fluentci/src/dagger/schema.ts deleted file mode 100644 index 87f275c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - booleanArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy, compile } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - token: nonNull(stringArg()), - project: nonNull(stringArg()), - main: nonNull(stringArg()), - noStatic: nonNull(booleanArg()), - }, - resolve: async (_root, args, _ctx) => - await deploy( - args.src, - args.token, - args.project, - args.main, - args.noStatic - ), - }); - t.string("compile", { - args: { - src: nonNull(stringArg()), - file: nonNull(stringArg()), - output: nonNull(stringArg()), - target: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => - await compile(args.src, args.file, args.output, args.target), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 017540c..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - name: "Setup Fluent CI", - uses: "fluentci-io/setup-fluentci@v2", - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 5124081..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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 - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index 36a4483..0000000 --- a/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,20 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 159b202..0000000 --- a/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,17 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Setup Fluent CI - uses: fluentci-io/setup-fluentci@v2 - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/.github/workflows/zenith.yml b/.fluentci/example/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index a59113c..0000000 --- a/.fluentci/example/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,24 +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 lint.gql - dagger query --doc fmt.gql - dagger query --doc compile.gql - working-directory: example diff --git a/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 01afc3b..0000000 --- a/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,85 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------- | --------------------------------------------------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| compile | Compile the given script into a self contained executable | | -| deploy | Deploy your app to Deno Deploy | | - -```graphql -compile( - file: String!, - output: String!, - src: String!, - target: String! -): String - -deploy( - main: String!, - noStatic: Boolean!, - project: String!, - src: String!, - token: String! -): String - -fmt(src: String!): String - -lint(src: String!): String - -test(src: String!): String -``` - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); -``` diff --git a/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 81b7695..0000000 --- a/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -await fmt(); -await lint(); -await test(); diff --git a/.fluentci/example/.fluentci/dagger.json b/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index c486eff..0000000 --- a/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/", - "sdk/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/", - "sdk/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/", - "sdk/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 6b4223c..0000000 --- a/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,245 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:typescript": "npm:typescript@5.3.2" - }, - "npm": { - "typescript@5.3.2": { - "integrity": "sha512-6l+RyNy7oAHDfxC4FzSJcz9vnjTKxrLpDG5M2Vu4SHRVNg6xzqZp6LYSR9zjqQTu8DU/f5xwxUdADOkbrIX2gQ==", - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://cdn.skypack.dev/-/lodash@v4.17.21-K6GEbP02mWFnLA45zAmi/dist=es2019,mode=imports/optimized/lodash.js": "10c4df47937ffc78548d136dd535a021df5f57182a653260d715c0690dd22978", - "https://cdn.skypack.dev/lodash": "8280de0b3efd87f06ea0eb330d15b8de32c059556023b8c6524e9eb9e4844dc0", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.205.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.205.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.205.0/flags/mod.ts": "0948466fc437f017f00c0b972a422b3dc3317a790bcf326429d23182977eaf9f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "9bd1df6375031727868e2a7aa24e7517d1eba916b49529a412f9a214a0d58992", - "https://esm.sh/graphql-tag@2.12.6": "132ebb1ed959bb4dac146160b0cd0fa678c7b9e6bd04f349bf4cacbfb46d0b53", - "https://esm.sh/nanoid@4.0.2": "eb872595ebf6390181971c3e477d1b0fe7ea8383d9b66ced7d09ac8f9c4cf2c7", - "https://esm.sh/stringify-tree@1.1.1": "bb68a933167b8d80b88481df0beff172fc9b645db0c32fbe7dc2d822f61ebaea", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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.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", - "https://esm.sh/v135/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v135/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "4d5a257de3627fb09c512b23fed30f1b393e29a2c13f8325e89720b8ca6673c1", - "https://esm.sh/v135/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v135/execa@8.0.1/denonext/execa.mjs": "cfcca6be54deae22c8d7c4d8be8df397a9506a54d9af9171519b9eea8daea9a5", - "https://esm.sh/v135/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "4b5b69251541833f5a1035be0e98d46bd6d02843fd7d40720577baf6caca21ce", - "https://esm.sh/v135/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v135/graphql-request@6.1.0/denonext/graphql-request.mjs": "c97af0ff1802c36ae6fdf544153140ef4d950bf164f0e5e839e71aa599ea1555", - "https://esm.sh/v135/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ebaceefc216cba74424ddc55fde9e677f6e5a3e9d556a250faa1b53483574f03", - "https://esm.sh/v135/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v135/human-signals@5.0.0/denonext/human-signals.mjs": "ab3130133ac5943273c909d7887e3c16b8374f66d72c38caeea2c44d659af023", - "https://esm.sh/v135/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v135/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v135/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v135/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v135/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v135/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v135/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v135/minizlib@2.1.2/denonext/minizlib.mjs": "67abb7d83dacd0de153cce5d03ee3bfd68988c992306ff843370b68f038b43e0", - "https://esm.sh/v135/mkdirp@1.0.4/denonext/mkdirp.mjs": "41bc43ec9478e772660e2b0edf998f27f0158388c94003b7292d8093e699eb7b", - "https://esm.sh/v135/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v135/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v135/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v135/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "4772cda227b5c18f4293db7edf53998879c75d48e776533009ce1a8daa464bf5", - "https://esm.sh/v135/onetime@6.0.0/denonext/onetime.mjs": "5326fe5207b076a7ebc96740b4c3dcec7a2522a1aa5985e3b4157c1b9cb1e2dd", - "https://esm.sh/v135/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v135/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v135/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v135/shebang-command@2.0.0/denonext/shebang-command.mjs": "245674cc2dffa2d06fcef0540b81040b626227485e5f41d76e77d386b30b18e0", - "https://esm.sh/v135/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v135/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v135/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "6cacda15ffe7dc2e1343636549956877e1bd830be5bd56587f40f94ca7becda4", - "https://esm.sh/v135/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "139c0958b1fb9387d8ae5b95941682245a3f3d9ae531f5de9638c2e9109831e0", - "https://esm.sh/v135/tar@6.2.0/denonext/tar.mjs": "e13b56d41286f4935cb29acae60a040148af6e2649326a70e04c5ca6fe5ef04d", - "https://esm.sh/v135/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v135/which@2.0.2/denonext/which.mjs": "360f7d0aa13233975c86f120e2b1aa9695252b16e287ccdc651d3123473a3482", - "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.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/deps.ts b/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 0601a43..0000000 --- a/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,49 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { Client } from "./sdk/client.gen.ts"; -export default Client; - -export type { DirectoryID, SecretID } from "./sdk/client.gen.ts"; -export { Directory, Secret, File } from "./sdk/client.gen.ts"; -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; -export { parse } from "https://deno.land/std@0.205.0/flags/mod.ts"; -export { snakeCase, camelCase } from "https://cdn.skypack.dev/lodash"; - -export { - ClientError, - GraphQLClient, -} from "https://esm.sh/v128/graphql-request@6.1.0"; -export { - DaggerSDKError, - UnknownDaggerError, - DockerImageRefValidationError, - EngineSessionConnectParamsParseError, - ExecError, - GraphQLRequestError, - InitEngineSessionBinaryError, - TooManyNestedObjectsError, - EngineSessionError, - EngineSessionConnectionTimeoutError, - NotAwaitedRequestError, - ERROR_CODES, -} from "https://esm.sh/@dagger.io/dagger@0.9.3"; - -export type { - CallbackFct, - ConnectOpts, -} from "https://sdk.fluentci.io/v0.3.0/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/zenith.yml b/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/zenith.yml deleted file mode 100644 index 6877da9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/zenith.yml +++ /dev/null @@ -1,23 +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: - - zenith - -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.8.8 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: | - dagger query --doc lint.gql - dagger query --doc fmt.gql - working-directory: example diff --git a/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/dagger.json b/.fluentci/example/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index afb3b64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,256 +0,0 @@ -{ - "version": "3", - "packages": { - "specifiers": { - "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" - }, - "npm": { - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.9.3": "f95136f15787d9ccebca6bfb65f90c20ea99bc049eecf1e97a7a93ab1aee68cd", - "https://esm.sh/graphql-tag@2.12.6": "ccc89a9ceaca1c90a0a6a6f5a16a7f27ddcb775694d54d6d2bebf21c4ca0390c", - "https://esm.sh/nanoid@4.0.2": "c07546eb2eb7ad25443674c93290550bf717c9c4082493df7493ba01f206abe4", - "https://esm.sh/stringify-tree@1.1.1": "12f69388b35fe7dc950f02a1c70759b83c097f60801f5acc6088fa2b7589a108", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v134/@dagger.io/dagger@0.9.3/denonext/dagger.mjs": "b65dc071629f2548d4272905e30ef78e564653c5e2792ac8313d024a0894222a", - "https://esm.sh/v134/adm-zip@0.5.10/denonext/adm-zip.mjs": "cb72de3ffa08bfed32a38f3f30fa8801ca9abb0af23961cdb95a50cbf3d7d5f8", - "https://esm.sh/v134/chownr@2.0.0/denonext/chownr.mjs": "d7282b2612a9f13c62084c76fc72cdfb20503bccce959178b77b6def14d3ffd2", - "https://esm.sh/v134/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v134/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "d40c21770a464edbe15410e12d4423123aaf01ae9f836a1bf4a8507036b3e473", - "https://esm.sh/v134/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v134/execa@8.0.1/denonext/execa.mjs": "278a76b88174ba2aa2f117cc04c4344311710df17bda0bd9e0791efd1884b186", - "https://esm.sh/v134/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "6f650802d6b8c607ec5ebfb63d1dbf90a059b5342829ccd471b0d94a381e451a", - "https://esm.sh/v134/get-stream@8.0.1/denonext/get-stream.mjs": "b8ab640bf2638c1ae704a217b79e0a56e7a1f97bb48bbe40d723d5ea87eb0ecb", - "https://esm.sh/v134/graphql-request@6.1.0/denonext/graphql-request.mjs": "c84659c89223b5594b5ef5bfde8ed0cbc3ff4b3477aa369433e94a12f19d6401", - "https://esm.sh/v134/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "f6dfd75d3e055bb10d3fcc44bcd14c2a9c596b4abbf76a4e63a18b854ecee57b", - "https://esm.sh/v134/graphql@16.8.1/denonext/graphql.mjs": "585b84022623b931e27a7a8134cd24ec50b33ea12fd18b43254527628a0fddac", - "https://esm.sh/v134/human-signals@5.0.0/denonext/human-signals.mjs": "8d8663d92280b1ed15bb1b1a0a79601e17f6b165335e85f94c40e56129542077", - "https://esm.sh/v134/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v134/isexe@2.0.0/denonext/isexe.mjs": "4675d9d53a332f096efd344cb1418dbda8e6f2effc8a5c81edd43cdd56636be7", - "https://esm.sh/v134/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v134/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v134/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v134/minipass@3.3.6/denonext/minipass.mjs": "195894c7a7f1fb71de48b4a41af182cd3ad0e357cadc0ad9d8b5340cda895cc0", - "https://esm.sh/v134/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v134/minizlib@2.1.2/denonext/minizlib.mjs": "8a77f339dd275b82703366164dfbcd9c0089896a3ac5fe11e248e28348f4fcf9", - "https://esm.sh/v134/mkdirp@1.0.4/denonext/mkdirp.mjs": "66f5bf329f183d39374fe923604cdeab7981634cea4354a7983c61003dbd4d29", - "https://esm.sh/v134/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v134/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v134/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v134/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "f2a2940a856720c07e3b7ecc24271f5f54b4cf733085269ba2ac5ed603f7b671", - "https://esm.sh/v134/onetime@6.0.0/denonext/onetime.mjs": "1aeb698de7b5a7adecd6916696dcdd26e5ae76305433c72840b2c7a3c0562e33", - "https://esm.sh/v134/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v134/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v134/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v134/shebang-command@2.0.0/denonext/shebang-command.mjs": "f7ec13a30db7b40ebf26cce54ebaa9dd8ab0f0aea86ee3393f14eed7e0478e6f", - "https://esm.sh/v134/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v134/signal-exit@4.1.0/denonext/signal-exit.mjs": "c450b9024df3b59ded71e7b52aada1ac4b3856aad93e9d64bbc6ea3cdd181824", - "https://esm.sh/v134/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "bc1b80ea933554c779decb74d4e3fddcaeabf03cd40089a0e116ef990ef6dd9a", - "https://esm.sh/v134/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v134/tar@6.2.0/denonext/tar.mjs": "8f60795202fb96f8b3965583a93aad7f34de186fa40447dce2ccdde2fbde8f8a", - "https://esm.sh/v134/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v134/which@2.0.2/denonext/which.mjs": "fcef5b237d348d13461fe8b8f488d49dc98065bb4c77e184336c755ab6a26da0", - "https://esm.sh/v134/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v134/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9689357882f365e29af1f7b2015cd08c7e01fe5d0a8363132216b6b9b905a337", - "https://nix.fluentci.io/v0.5.3/deps.ts": "469c1f084eda8d2ee78135b0bf4f9490b80b36d8d0bdb88594167133a918da8e", - "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "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", - "https://sdk.fluentci.io/v0.3.0/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/v0.3.0/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.3.0/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/deps.ts b/.fluentci/example/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 6d2ca67..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,30 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/v0.3.0/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/v0.5.3/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - booleanArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.envrc b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.envrc deleted file mode 100644 index 2b538b1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.envrc +++ /dev/null @@ -1,4 +0,0 @@ -DAGGER_SRC_ROOT=$(cd ../dagger && pwd) -export _EXPERIMENTAL_DAGGER_CLI_BIN=$DAGGER_SRC_ROOT/bin/dagger -export _EXPERIMENTAL_DAGGER_RUNNER_HOST=docker-container://dagger-engine.dev -export PATH=$DAGGER_SRC_ROOT/bin:$PATH \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index e6af1f4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 74cbeb5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -fluentci run deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -fluentci run . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 04a4c71..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; -import { fmt, lint, test } from "https://deno.land/x/deno_pipeline/mod.ts"; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/dagger.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/dagger.json deleted file mode 100644 index 9734326..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdk": "deno" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index e0e77b5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "schema": "deno run -A src/dagger/schema.ts", - "clean": "rm -rf gen schema.graphql" - }, - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 89cfcf3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,281 +0,0 @@ -{ - "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", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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.4": "424bddc1457c1fc4975c978425730be068b5414e92dca7a64f2d80e2123c4719", - "https://esm.sh/graphql-tag@2.12.6": "2d8f017bc251d9e7346bafc3f3aef4b65f7fdc302c6e0d085e3359f44c893068", - "https://esm.sh/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/@dagger.io/dagger@0.8.4/denonext/dagger.mjs": "a090c18168360a715fcc7ff731cc6cf940e8d08b8a5b18fa80983b47666118a9", - "https://esm.sh/v132/adm-zip@0.5.10/denonext/adm-zip.mjs": "bcdc3b866e0817ac4f1b2a3021dd0a9aafa2c65f1fd254511706b7924fa8b0b7", - "https://esm.sh/v132/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v132/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v132/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "7c92cdafd952c699fe01eb7a0c29c7cc112c546068ff757cb8832fa110499f11", - "https://esm.sh/v132/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v132/execa@7.2.0/denonext/execa.mjs": "5aa1c5a07843e56fd4ff4e0728d11941122d9f3c4bc37600971aa8e75c86d3a6", - "https://esm.sh/v132/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "18bcb6852f74c79ad50261e900a8c5daf2e7c38ce6662859e4f6f61d18daa6ed", - "https://esm.sh/v132/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v132/graphql-request@6.1.0/denonext/graphql-request.mjs": "796e05cc81ad339ef182de57452ffc00e9fef874df14fbba41338ca893499733", - "https://esm.sh/v132/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ca4302aabfeec9e4335103f1a3eeaf26277af50b828a3bcde7f262fcd4e98e1d", - "https://esm.sh/v132/graphql@16.8.0/denonext/graphql.mjs": "e10e0db78cbbef8215b2665e5ed46cbb28fc61ecdb560f9e8d304a610f51f5bc", - "https://esm.sh/v132/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v132/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v132/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v132/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v132/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v132/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v132/minizlib@2.1.2/denonext/minizlib.mjs": "2e35ea8aa6cb4caa6f9b6c5b3c8684460698c868363e134af26c28d0e76ded5f", - "https://esm.sh/v132/mkdirp@1.0.4/denonext/mkdirp.mjs": "091be31ee8a9c0f5f716b769bf81397ac70a587a5f2b0367e1e3bda26f5a8af7", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v132/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", - "https://esm.sh/v132/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "b97d372a504bcca269c98f5d13ba0671e47230aaaaa36c3554b4a705085044df", - "https://esm.sh/v132/onetime@6.0.0/denonext/onetime.mjs": "c0be3fa6d700bb157f9a710aaf23df049f70c6a7d7e66a7d76568c5177267c51", - "https://esm.sh/v132/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v132/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v132/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v132/shebang-command@2.0.0/denonext/shebang-command.mjs": "35a3eae8fe5ccaab6598ba16e81bfc06bc1b46128028cd4cf76d63786dcd54aa", - "https://esm.sh/v132/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v132/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/v132/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v132/tar@6.2.0/denonext/tar.mjs": "f55c2f94c0ba1123048c9e3fa0af3a2bebac3af5a9895610865f05ae4d0b7f58", - "https://esm.sh/v132/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", - "https://esm.sh/v132/which@2.0.2/denonext/which.mjs": "7482079af785ec16137592b26d53cb2808b05979559f5d0d9d036a80c6b1636e", - "https://esm.sh/v132/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v132/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "5471fa3592a8a9d1a4a3d8cacf54070b01aedaca82f14fdbbdd056a491db00ec", - "https://nix.fluentci.io/v0.5.1/deps.ts": "d2fee07fcb79b609f64f988990ad5d67c7bf17455f75dcbf1b3bbfa5de7c73b2", - "https://nix.fluentci.io/v0.5.1/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://nix.fluentci.io/zenith/deps.ts": "a8fd3aa32faea5de2779cc6494471b4fd9588f039d199ff1a1ff1b00343aef26", - "https://nix.fluentci.io/zenith/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", - "https://sdk.fluentci.io/v0.1.9/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/v0.1.9/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/v0.1.9/src/client.ts": "a8dd54861feccd11a53df39b2d45bfb3b2a8a3dff509f5700c41b517d4dff44d", - "https://sdk.fluentci.io/v0.1.9/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/v0.1.9/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/v0.1.9/src/utils.ts": "394d131cfd465f0f3d8f876237f3bad1ab4dba73b9b7a396ee705d02aee40c16", - "https://sdk.fluentci.io/z/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/z/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/z1/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/z1/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", - "https://sdk.fluentci.io/z1/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/z1/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", - "https://sdk.fluentci.io/z1/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/z1/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308", - "https://sdk.fluentci.io/zenith/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", - "https://sdk.fluentci.io/zenith/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", - "https://sdk.fluentci.io/zenith/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", - "https://sdk.fluentci.io/zenith/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", - "https://sdk.fluentci.io/zenith/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", - "https://sdk.fluentci.io/zenith/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deps.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deps.ts deleted file mode 100644 index 4a9e5f6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deps.ts +++ /dev/null @@ -1,29 +0,0 @@ -export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import Client from "https://sdk.fluentci.io/z1/mod.ts"; -export default Client; - -export { connect, uploadContext } from "https://sdk.fluentci.io/z1/mod.ts"; -export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -export { withDevbox } from "https://nix.fluentci.io/zenith/src/dagger/steps.ts"; -export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; -import gql from "https://esm.sh/graphql-tag@2.12.6"; -export { gql }; -export { - arg, - queryType, - stringArg, - intArg, - nonNull, - makeSchema, -} from "npm:nexus"; -export { - dirname, - join, - resolve, -} from "https://deno.land/std@0.203.0/path/mod.ts"; - -export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; -export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; -export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; -export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; -export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts"; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 1146495..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/v0.1.5/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 9c83256..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,215 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373", - "https://sdk.fluentci.io/v0.1.5/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.5/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.5/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.5/src/context.ts": "d711106c5f2dfb894d522d1541b18b0d81d47db603132070d6f743673924554b", - "https://sdk.fluentci.io/v0.1.5/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml deleted file mode 100644 index 348323d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/example.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions - -name: Example -on: - push: - branches: - - main - paths: - - example/** - - .github/workflows/example.yml -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run deno run -A ../src/dagger/runner.ts fmt lint - working-directory: example diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 95f3578..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,70 +0,0 @@ -# Deno 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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "https://sdk.fluentci.io/latest/mod.ts"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 3323811..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,210 +0,0 @@ -{ - "version": "2", - "remote": { - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", - "https://cdn.jsdelivr.net/gh/tsirysndr/tar/src/tar.ts": "8a2c1c4692cf92f70437509761dec291a660a85675602e4954de04e721d82ae4", - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", - "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts": "c33775203391e62279bdbbc85ab5b8aa920a321ea90daab48abbbff7d5725454", - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", - "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/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", - "https://esm.sh/v128/*@dagger.io/dagger@0.8.4": "cd4d92549eba000cd17c622e144c7f63303fb8ab53872a59a901be123a202b74", - "https://esm.sh/v128/@dagger.io/dagger@0.8.4/X-ZS8q/denonext/dagger.mjs": "fea025664b2f809f86ed333e241f318d6352b1338020131b1b699850b0d9e433", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", - "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/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", - "https://esm.sh/yaml@v2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", - "https://sdk.fluentci.io/v0.1.4/mod.ts": "d04d9358605b672fc877e7ae8eaaef228773819e9c46bf581dd4a351b887ab7e", - "https://sdk.fluentci.io/v0.1.4/src/client.ts": "f44b27ae573b09d85089ce4e5c9a01c95926058fb41d26de23f0f6f5412ecf89", - "https://sdk.fluentci.io/v0.1.4/src/connect.ts": "ddd4cbac2069427ad3b9106459207d63d392640f3c669c45b87e5049711dd338", - "https://sdk.fluentci.io/v0.1.4/src/context.ts": "7e0503a6711526a1d11ef24579b340b0ad08587af138a137cacb85f7fe4ebf3f", - "https://sdk.fluentci.io/v0.1.4/src/utils.ts": "df9a823be6e127feb3e2e4261f3c0b3b31da888ba2bfc4b8b841ae4c2fcd3373" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a364136..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 481e992..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "List Jobs", - run: "fluentci ls .", - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test codecov", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index b467bdb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: List Jobs - run: fluentci ls . - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index a874952..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,97 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", - "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/event.ts": "c31430af085682cb4ad522c655a8a0800a3ab8b8aec7c979d60c909051d853b0", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/job_spec.ts": "ee7af83e75285b4776ff4f9e14764187737178b4abc6c277da1c32491c41dfca", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/step_spec.ts": "3207071b5dee8487f36fe4ea1881e8fd3b77c472c965c20a14093a3c919af9af", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow.ts": "488556e230fdeeb3a5b0d0bf548c570606aa356b0a7f667ea1d031d3263eb566", - "https://deno.land/x/fluent_github_actions@v0.1.2/src/workflow_spec.ts": "3ca9e565dc1dedd0531e0b852d50b9a3853a1ad35f2010760e0326590b80fa43", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci.ts": "85d2335622c2def4a9554a9d8b8de4e62156f5d76d59a553e157bab4e6b6591f", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/gitlabci_spec.ts": "b60f40ecf26d243db2391aee70fdf71b133de3faaf789052020f58f98cf1b500", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", - "https://deno.land/x/fluent_gitlab_ci@v0.3.2/src/job.ts": "a1ddf8d37ca33239de9d2c61f98835e585f6671748b37af8d647ebba5e1a9974", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe", - "https://esm.sh/v130/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", - "https://esm.sh/yaml@v2.3.1": "9f8730b9d2fdb4d9320be0c0e62d57936097826342588991d561ae35555aca55" - }, - "npm": { - "specifiers": { - "@types/node": "@types/node@18.16.19" - }, - "packages": { - "@types/node@18.16.19": { - "integrity": "sha512-IXl7o+R9iti9eBW4Wg2hx1xQDig183jj7YLn8F7udNceyfkbn1ZxmzZXuak20gR40D7pIkIY1kYGx5VIGbaHKA==", - "dependencies": {} - } - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 12c59ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 862b599..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - const result = await ctr.stdout(); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts deleted file mode 100644 index 9508e83..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/config.ts +++ /dev/null @@ -1,52 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml() { - const workflow = new Workflow("Codecov"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci . fmt lint test", - }, - { - name: "Upload to Codecov", - run: "dagger run fluentci codecov_pipeline", - env: { - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", - }, - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - - workflow.save(".github/workflows/ci.yml"); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts deleted file mode 100644 index 6097dd5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index f8521e3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Codecov -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci . fmt lint test - - name: Upload to Codecov - run: dagger run fluentci codecov_pipeline - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore deleted file mode 100644 index a2442bb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -coverage/ -coverage.lcov \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index 50c0687..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,69 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Environment variables (Deno Deploy) - -| Variable | Description | Default | -| ----------------- | ------------------------- | ---------- | -| DENO_PROJECT | Your project name | | -| NO_STATIC | Disable static assets | `false` | -| EXCLUDE | Exclude files from deploy | | -| DENO_DEPLOY_TOKEN | Your Deno Deploy token | | -| DENO_MAIN_SCRIPT | Your main script | `main.tsx` | - -## Jobs - -| Job | Description | Options | -| ------ | ------------------------------ | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | -| deploy | Deploy your app to Deno Deploy | | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index d976349..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove" - }, - "fmt": { - "exclude": ["example/", ".fluentci/"] - }, - "lint": { - "exclude": ["example/", ".fluentci/"] - }, - "test": { - "exclude": ["example/", ".fluentci/"] - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index 5a9aed4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,68 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "94468e0980c59bffebea398fa56bdba9446d502d493fbe511ae36954f183fcc7", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v131/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v131/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "309b45d511c4bc2f5af3f42442fab34197982a7a83d77144722713ac7e8b4338" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json deleted file mode 100644 index 39a38ae..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json +++ /dev/null @@ -1,25 +0,0 @@ -// For format details, see https://aka.ms/devcontainer.json. For config options, see the -// README at: https://github.com/devcontainers/templates/tree/main/src/debian -{ - "name": "Debian", - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile - "image": "mcr.microsoft.com/devcontainers/base:bullseye", - "features": { - "ghcr.io/devcontainers/features/github-cli:1": {}, - "ghcr.io/devcontainers/features/nix:1": {} - }, - - // Features to add to the dev container. More info: https://containers.dev/features. - // "features": {}, - - // Use 'forwardPorts' to make a list of ports inside the container available locally. - // "forwardPorts": [], - - // Use 'postCreateCommand' to run commands after the container is created. - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" - // Configure tool-specific properties. - // "customizations": {}, - - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. - // "remoteUser": "root" -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md deleted file mode 100644 index c25fb29..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/README.md +++ /dev/null @@ -1,88 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. - -## ๐Ÿš€ Usage - -Quick start: - -```ts -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { pipeline } = GitLab; - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -Or, if you want to use the predefined jobs: - -```ts -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; -import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = GitLab; - -const const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml -``` - -It will generate the following `.gitlab-ci.yml` file: - -```yaml -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test -``` - -## ๐Ÿงช Advanced Usage - -This package also provides a ready-to-use pipeline for -[Dagger](https://dagger.io/), just run the following command on your Deno -project: - -```sh -dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts -``` - -Or, if you want to use the predefined jobs: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock deleted file mode 100644 index 23cc878..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/deno.lock +++ /dev/null @@ -1,66 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 42b4554..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,111 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", -} - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.lint) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.fmt) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = client - .pipeline(Job.test) - .container() - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml deleted file mode 100644 index a7f9464..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.github/workflows/ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -name: Codecov - -# Controls when the action will run. Triggers the workflow on push or pull request -# events but only for the master branch -on: - push: - branches: [main] - pull_request: - branches: [main] - -jobs: - test: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.34 - - name: Create coverage files - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files - - name: Create coverage report - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report - - name: Collect coverage - uses: codecov/codecov-action@v3 # upload the report on Codecov - env: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - file: ./coverage.lcov diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md deleted file mode 100644 index e9c20f9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,132 +0,0 @@ -# Contributor Covenant Code of Conduct - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in our -community a harassment-free experience for everyone, regardless of age, body -size, visible or invisible disability, ethnicity, sex characteristics, gender -identity and expression, level of experience, education, socio-economic status, -nationality, personal appearance, race, caste, color, religion, or sexual -identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, -diverse, inclusive, and healthy community. - -## Our Standards - -Examples of behavior that contributes to a positive environment for our -community include: - -- Demonstrating empathy and kindness toward other people -- Being respectful of differing opinions, viewpoints, and experiences -- Giving and gracefully accepting constructive feedback -- Accepting responsibility and apologizing to those affected by our mistakes, - and learning from the experience -- Focusing on what is best not just for us as individuals, but for the overall - community - -Examples of unacceptable behavior include: - -- The use of sexualized language or imagery, and sexual attention or advances of - any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Publishing others' private information, such as a physical or email address, - without their explicit permission -- Other conduct which could reasonably be considered inappropriate in a - professional setting - -## Enforcement Responsibilities - -Community leaders are responsible for clarifying and enforcing our standards of -acceptable behavior and will take appropriate and fair corrective action in -response to any behavior that they deem inappropriate, threatening, offensive, -or harmful. - -Community leaders have the right and responsibility to remove, edit, or reject -comments, commits, code, wiki edits, issues, and other contributions that are -not aligned to this Code of Conduct, and will communicate reasons for moderation -decisions when appropriate. - -## Scope - -This Code of Conduct applies within all community spaces, and also applies when -an individual is officially representing the community in public spaces. -Examples of representing our community include using an official e-mail address, -posting via an official social media account, or acting as an appointed -representative at an online or offline event. - -## Enforcement - -Instances of abusive, harassing, or otherwise unacceptable behavior may be -reported to the community leaders responsible for enforcement at -[GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). -All complaints will be reviewed and investigated promptly and fairly. - -All community leaders are obligated to respect the privacy and security of the -reporter of any incident. - -## Enforcement Guidelines - -Community leaders will follow these Community Impact Guidelines in determining -the consequences for any action they deem in violation of this Code of Conduct: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behavior deemed -unprofessional or unwelcome in the community. - -**Consequence**: A private, written warning from community leaders, providing -clarity around the nature of the violation and an explanation of why the -behavior was inappropriate. A public apology may be requested. - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of -actions. - -**Consequence**: A warning with consequences for continued behavior. No -interaction with the people involved, including unsolicited interaction with -those enforcing the Code of Conduct, for a specified period of time. This -includes avoiding interactions in community spaces as well as external channels -like social media. Violating these terms may lead to a temporary or permanent -ban. - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including -sustained inappropriate behavior. - -**Consequence**: A temporary ban from any sort of interaction or public -communication with the community for a specified period of time. No public or -private interaction with the people involved, including unsolicited interaction -with those enforcing the Code of Conduct, is allowed during this period. -Violating these terms may lead to a permanent ban. - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community -standards, including sustained inappropriate behavior, harassment of an -individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the -community. - -## Attribution - -This Code of Conduct is adapted from the [Contributor Covenant][homepage], -version 2.1, available at -[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. - -Community Impact Guidelines were inspired by -[Mozilla's code of conduct enforcement ladder][Mozilla CoC]. - -For answers to common questions about this code of conduct, see the FAQ at -[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at -[https://www.contributor-covenant.org/translations][translations]. - -[homepage]: https://www.contributor-covenant.org -[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html -[Mozilla CoC]: https://github.com/mozilla/diversity -[FAQ]: https://www.contributor-covenant.org/faq -[translations]: https://www.contributor-covenant.org/translations diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md deleted file mode 100644 index e50de72..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/CONTRIBUTING.md +++ /dev/null @@ -1,70 +0,0 @@ -# Contributing Guidelines - -Thank you for your interest in contributing to our project. Whether it's a bug -report, new feature, correction, or additional documentation, we greatly value -feedback and contributions from our community. - -Please read through this document before submitting any issues or pull requests -to ensure we have all the necessary information to effectively respond to your -bug report or contribution. - -## Reporting Bugs/Feature Requests - -We welcome you to use the GitHub issue tracker to report bugs or suggest -features. - -When filing an issue, please check existing open, or recently closed, issues to -make sure somebody else hasn't already reported the issue. Please try to include -as much information as you can. Details like these are incredibly useful: - -- A reproducible test case or series of steps -- The version of our code being used -- Any modifications you've made relevant to the bug -- Anything unusual about your environment or deployment - -## Contributing via Pull Requests - -Contributions via pull requests are much appreciated. Before sending us a pull -request, please ensure that: - -1. You are working against the latest source on the _master_ branch. -2. You check existing open, and recently merged, pull requests to make sure - someone else hasn't addressed the problem already. -3. You open an issue to discuss any significant work - we would hate for your - time to be wasted. - -To send us a pull request, please: - -1. Fork the repository. -2. Modify the source; please focus on the specific change you are contributing. - If you also reformat all the code, it will be hard for us to focus on your - change. -3. Ensure local tests pass. -4. Commit to your fork using clear commit messages. -5. Send us a pull request, answering any default questions in the pull request - interface. -6. Pay attention to any automated CI failures reported in the pull request, and - stay involved in the conversation. - -GitHub provides additional document on -[forking a repository](https://help.github.com/articles/fork-a-repo/) and -[creating a pull request](https://help.github.com/articles/creating-a-pull-request/). - -## Finding contributions to work on - -Looking at the existing issues is a great way to find something to contribute -on. As our projects, by default, use the default GitHub issue labels -(enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any -'help wanted' issues is a great place to start. - -## Code of Conduct - -This project has adopted the -[Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, -available at -https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. - -## Licensing - -See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to -confirm the licensing of your contribution. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE deleted file mode 100644 index d9ab36a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -Copyright (c) 2023 Tsiry Sandratraina - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md deleted file mode 100644 index b6a064b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/README.md +++ /dev/null @@ -1,58 +0,0 @@ -# Deno Pipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -A ready-to-use CI/CD Pipeline for your Deno projects. - -## ๐Ÿš€ Usage - -Run the following command: - -```bash -dagger run fluentci deno_pipeline -``` - -Or, if you want to use it as a template: - -```bash -fluentci init -t deno -``` - -This will create a `.fluentci` folder in your project. - -Now you can run the pipeline with: - -```bash -dagger run fluentci . -``` - -## Jobs - -| Job | Description | Options | -| ----- | ---------------- | ---------------------- | -| fmt | Format your code | | -| lint | Lint your code | | -| test | Run your tests | `{ ignore: string[] }` | - -## Programmatic usage - -You can also use this pipeline programmatically: - -```ts -import Client, { connect } from "@dagger.io/dagger"; -import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; - -const { fmt, lint, test } = Dagger; - -function pipeline(src = ".") { - connect(async (client: Client) => { - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -pipeline(); -``` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts deleted file mode 100644 index 67e5a80..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/ci.ts +++ /dev/null @@ -1,12 +0,0 @@ -const command = new Deno.Command(Deno.execPath(), { - args: [ - "run", - "-A", - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", - ], -}); - -const { stdout } = await command.output(); - -console.log(new TextDecoder().decode(stdout)); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json deleted file mode 100644 index 4240219..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "importMap": "import_map.json", - "tasks": { - "esm:add": "deno run -A https://esm.sh/v128 add", - "esm:update": "deno run -A https://esm.sh/v128 update", - "esm:remove": "deno run -A https://esm.sh/v128 remove", - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock deleted file mode 100644 index f8af4c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/deno.lock +++ /dev/null @@ -1,67 +0,0 @@ -{ - "version": "2", - "remote": { - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 299e4c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by Fluent GitLab CI - -image: denoland/deno:alpine - -fmt: - image: denoland/deno:alpine - script: - - deno fmt --check - -lint: - image: denoland/deno:alpine - script: - - deno lint - -test: - image: denoland/deno:alpine - script: - - deno test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 801ea9a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 6152fb6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,4 +0,0 @@ -import * as GitLab from "./src/gitlab/index.ts"; -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger, GitLab }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 611a5e0..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,188 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index bad7372..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts deleted file mode 100644 index 46be50c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/jobs.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; - -export const fmt = new Job() - .image("denoland/deno:alpine") - .script("deno fmt --check"); - -export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); - -export const test = new Job().image("denoland/deno:alpine").script("deno test"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts deleted file mode 100644 index 366de64..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -const pipeline = new GitlabCI() - .image("denoland/deno:alpine") - .addJob("fmt", fmt) - .addJob("lint", lint) - .addJob("test", test); - -export default pipeline; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts deleted file mode 100644 index ca24710..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; - -Deno.test(function pipelineTest() { - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - const actual = pipeline.toString(); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index e44a1b8..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "imports": { - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index cb3e1e5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,38 +0,0 @@ -# AWS CodePipeline - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline fmt lint test -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 3d8b7cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# Azure Pipelines - -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 976e15d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,46 +0,0 @@ -# Circle CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 658ed39..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,197 +0,0 @@ -import Client from "@dagger.io/dagger"; -import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", - codecov = "codecov", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const codecov = upload; - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, - [Job.codecov]: upload, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", - [Job.codecov]: "Upload your code coverage to Codecov", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 02e28e9..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,26 +0,0 @@ -import Client, { connect } from "@dagger.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index d0edabd..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Github Actions - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by Fluent Github Actions - -name: Tests -on: - push: - branches: - - main -jobs: - tests: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index cb74d2b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Gitlab CI - -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by Fluent GitLab CI - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index a902ba8..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.4/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 392c001..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test } from "./jobs.ts"; - -export { fmt, lint, pipeline, test }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index e1e798f..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,192 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withExec(["ls", "-l"]) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const exclude = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (exclude) { - command = command.concat([`--exclude=${exclude}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude: [".git", ".devbox", ".fluentci"], - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index cb52ac4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,27 +0,0 @@ -import Client, { connect } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs } = jobs; - -export default function pipeline(src = ".", args: string[] = []) { - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index e23879e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index a6193e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -dagger run fluentci . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 46714d3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 5898473..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index f9bab4c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index 164d0ba..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 19158d5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 1949940..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.5/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 2c3acca..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -import * as Dagger from "./src/dagger/index.ts"; - -export { Dagger }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index a30c785..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - dagger run fluentci deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index e8d46b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { BuildSpec } from "fluent_aws_codepipeline"; - -export function generateYaml(): BuildSpec { - const buildspec = new BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["dagger run fluentci deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index 97bed68..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 26b2b4e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: dagger run fluentci deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 537c6a6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { AzurePipeline } from "fluent_azure_pipelines"; - -export function generateYaml(): AzurePipeline { - const azurePipeline = new AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "dagger run fluentci deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 0311f55..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 8c0e489..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: dagger run fluentci deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 27790aa..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { CircleCI, Job } from "fluent_circleci"; - -export function generateYaml(): CircleCI { - const circleci = new CircleCI(); - - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "dagger run fluentci deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 283a9c3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index 37c32c6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, exclude }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 764c7a4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,193 +0,0 @@ -import Client from "@fluentci.io/dagger"; -import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.4.1/src/dagger/steps.ts"; -import { existsSync } from "fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const fmt = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const test = async ( - client: Client, - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export const deploy = async (client: Client, src = ".") => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - const result = await ctr.stdout(); - - console.log(result); -}; - -export type JobExec = ( - client: Client, - src?: string -) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 12bb3cb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,21 +0,0 @@ -import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; -import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 9df56ff..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,31 +0,0 @@ -import Client, { connect, uploadContext } from "@fluentci.io/dagger"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - - connect(async (client: Client) => { - if (args.length > 0) { - await runSpecificJobs(client, args as jobs.Job[]); - return; - } - - await fmt(client, src); - await lint(client, src); - await test(client, src); - }); -} - -async function runSpecificJobs(client: Client, args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(client); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 8569363..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: dagger run fluentci deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index b51d252..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "dagger run fluentci deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 88bf54f..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index 7a70b13..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - dagger run fluentci deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 38300e1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { GitlabCI, Job } from "fluent_gitlab_ci"; - -export function generateYaml(): GitlabCI { - const docker = new Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new Job() - .extends(".dagger") - .script("dagger run fluentci deno_pipeline fmt lint test"); - - return new GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index bf5c856..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index 3bff5f8..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,149 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - deploy: { // args - src: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/schema.graphql b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index a5ef637..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,10 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - deploy(src: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index d92fac1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, exclude }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 3957ef3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,203 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - return result; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - }); - return result; -}; - -export const deploy = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - const project = Deno.env.get("DENO_PROJECT"); - const noStatic = Deno.env.get("NO_STATIC"); - const excludeOpt = Deno.env.get("EXCLUDE"); - - let command = ["deployctl", "deploy"]; - - if (noStatic) { - command = command.concat(["--no-static"]); - } - - if (excludeOpt) { - command = command.concat([`--exclude=${excludeOpt}`]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([`--project=${project}`, script]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - }); - - return result; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index ac32063..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query Fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query Lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query Test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query Deploy($src: String!) { - deploy(src: $src) - } -`; diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index cdc1831..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await deploy(args.src), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/compile.gql b/.fluentci/example/.fluentci/example/.fluentci/example/compile.gql deleted file mode 100644 index 0ea96cc..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "hello.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/dagger.json b/.fluentci/example/.fluentci/example/.fluentci/example/dagger.json deleted file mode 100644 index 6604f63..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/dagger.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "root": "", - "name": "deno", - "sdkRuntime": "tsiry/dagger-sdk-deno" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/deno.json b/.fluentci/example/.fluentci/example/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/fmt.gql b/.fluentci/example/.fluentci/example/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/hello.ts b/.fluentci/example/.fluentci/example/.fluentci/example/hello.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/hello.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/lint.gql b/.fluentci/example/.fluentci/example/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index ad9eed6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index 30a0293..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 92aa085..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index f1d5f78..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index 3cc725a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/fixtures/workflow.yml +++ /dev/null @@ -1,24 +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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test diff --git a/.fluentci/example/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts b/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts deleted file mode 100644 index d935169..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/gen/nexus.ts +++ /dev/null @@ -1,161 +0,0 @@ -/** - * This file was generated by Nexus Schema - * Do not make changes to this file directly - */ - - - - - - - -declare global { - interface NexusGen extends NexusGenTypes {} -} - -export interface NexusGenInputs { -} - -export interface NexusGenEnums { -} - -export interface NexusGenScalars { - String: string - Int: number - Float: number - Boolean: boolean - ID: string -} - -export interface NexusGenObjects { - Query: {}; -} - -export interface NexusGenInterfaces { -} - -export interface NexusGenUnions { -} - -export type NexusGenRootTypes = NexusGenObjects - -export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars - -export interface NexusGenFieldTypes { - Query: { // field return type - compile: string | null; // String - deploy: string | null; // String - fmt: string | null; // String - lint: string | null; // String - test: string | null; // String - } -} - -export interface NexusGenFieldTypeNames { - Query: { // field return type name - compile: 'String' - deploy: 'String' - fmt: 'String' - lint: 'String' - test: 'String' - } -} - -export interface NexusGenArgTypes { - Query: { - compile: { // args - file: string; // String! - output: string; // String! - src: string; // String! - target: string; // String! - } - deploy: { // args - main: string; // String! - noStatic: boolean; // Boolean! - project: string; // String! - src: string; // String! - token: string; // String! - } - fmt: { // args - src: string; // String! - } - lint: { // args - src: string; // String! - } - test: { // args - src: string; // String! - } - } -} - -export interface NexusGenAbstractTypeMembers { -} - -export interface NexusGenTypeInterfaces { -} - -export type NexusGenObjectNames = keyof NexusGenObjects; - -export type NexusGenInputNames = never; - -export type NexusGenEnumNames = never; - -export type NexusGenInterfaceNames = never; - -export type NexusGenScalarNames = keyof NexusGenScalars; - -export type NexusGenUnionNames = never; - -export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; - -export type NexusGenAbstractsUsingStrategyResolveType = never; - -export type NexusGenFeaturesConfig = { - abstractTypeStrategies: { - isTypeOf: false - resolveType: true - __typename: false - } -} - -export interface NexusGenTypes { - context: any; - inputTypes: NexusGenInputs; - rootTypes: NexusGenRootTypes; - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; - argTypes: NexusGenArgTypes; - fieldTypes: NexusGenFieldTypes; - fieldTypeNames: NexusGenFieldTypeNames; - allTypes: NexusGenAllTypes; - typeInterfaces: NexusGenTypeInterfaces; - objectNames: NexusGenObjectNames; - inputNames: NexusGenInputNames; - enumNames: NexusGenEnumNames; - interfaceNames: NexusGenInterfaceNames; - scalarNames: NexusGenScalarNames; - unionNames: NexusGenUnionNames; - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; - abstractTypeMembers: NexusGenAbstractTypeMembers; - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; - features: NexusGenFeaturesConfig; -} - - -declare global { - interface NexusGenPluginTypeConfig { - } - interface NexusGenPluginInputTypeConfig { - } - interface NexusGenPluginFieldConfig { - } - interface NexusGenPluginInputFieldConfig { - } - interface NexusGenPluginSchemaConfig { - } - interface NexusGenPluginArgConfig { - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index 52470dd..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from "./src/dagger/index.ts"; -export * as queries from "./src/dagger/queries.ts"; -export { schema } from "./src/dagger/schema.ts"; diff --git a/.fluentci/example/.fluentci/example/.fluentci/schema.graphql b/.fluentci/example/.fluentci/example/.fluentci/schema.graphql deleted file mode 100644 index 15afcd4..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/schema.graphql +++ /dev/null @@ -1,11 +0,0 @@ -### This file was generated by Nexus Schema -### Do not make changes to this file directly - - -type Query { - compile(file: String!, output: String!, src: String!, target: String!): String - deploy(main: String!, noStatic: Boolean!, project: String!, src: String!, token: String!): String - fmt(src: String!): String - lint(src: String!): String - test(src: String!): String -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index bd15b34..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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.8.1 sh", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 4f06682..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index 9c1d3e6..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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.8.1 sh -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index a64705a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,4 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { fmt, lint, test, deploy, compile, exclude } from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude }; diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 8d26faf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,263 +0,0 @@ -import Client from "../../deps.ts"; -import { withDevbox, connect } from "../../deps.ts"; -import { existsSync } from "node:fs"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - if (existsSync("devbox.json")) { - return withDevbox( - client - .pipeline(pipeline) - .container() - .from("alpine:latest") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "bash", "curl"]) - .withMountedCache("/nix", client.cacheVolume("nix")) - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) - ); - } - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); -}; - -export const lint = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const fmt = async (src = ".") => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const test = async ( - src = ".", - options: { ignore: string[] } = { ignore: [] } -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (options.ignore.length > 0) { - command = command.concat([`--ignore=${options.ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); - - result = await ctr.stdout(); - console.log(result); - }); - return "Done"; -}; - -export const compile = async ( - src = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]); - - await ctr.file(`/app/${output}`).export(`./${output}`); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export const deploy = async ( - src = ".", - token?: string, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -) => { - let result = ""; - await connect(async (client) => { - const context = client.host().directory(src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - if (!Deno.env.get("DENO_DEPLOY_TOKEN") && !token) { - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withEnvVariable( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN") || token! - ) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -}; - -export type JobExec = (src?: string) => - | Promise - | (( - client: Client, - src?: string, - options?: { - ignore: string[]; - } - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index a352e03..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job(); - } -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts deleted file mode 100644 index 0d30732..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/queries.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { gql } from "../../deps.ts"; - -export const fmt = gql` - query fmt($src: String!) { - fmt(src: $src) - } -`; - -export const lint = gql` - query lint($src: String!) { - lint(src: $src) - } -`; - -export const test = gql` - query test($src: String!) { - test(src: $src) - } -`; - -export const deploy = gql` - query deploy( - $src: String! - $token: String! - $project: String! - $main: String! - $noStatic: Boolean! - ) { - deploy( - src: $src - token: $token - project: $project - main: $main - noStatic: $noStatic - ) - } -`; - -export const compile = gql` - query compile( - $src: String! - $file: String! - $output: String! - $target: String! - ) { - compile(src: $src, file: $file, output: $output, target: $target) - } -`; diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index ce5e3a5..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,3 +0,0 @@ -import pipeline from "./pipeline.ts"; - -await pipeline(".", Deno.args); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts b/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts deleted file mode 100644 index 87f275c..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/dagger/schema.ts +++ /dev/null @@ -1,70 +0,0 @@ -import { - queryType, - makeSchema, - dirname, - join, - resolve, - stringArg, - booleanArg, - nonNull, -} from "../../deps.ts"; - -import { fmt, lint, test, deploy, compile } from "./jobs.ts"; - -const Query = queryType({ - definition(t) { - t.string("fmt", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await fmt(args.src), - }); - t.string("lint", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await lint(args.src), - }); - t.string("test", { - args: { - src: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => await test(args.src), - }); - t.string("deploy", { - args: { - src: nonNull(stringArg()), - token: nonNull(stringArg()), - project: nonNull(stringArg()), - main: nonNull(stringArg()), - noStatic: nonNull(booleanArg()), - }, - resolve: async (_root, args, _ctx) => - await deploy( - args.src, - args.token, - args.project, - args.main, - args.noStatic - ), - }); - t.string("compile", { - args: { - src: nonNull(stringArg()), - file: nonNull(stringArg()), - output: nonNull(stringArg()), - target: nonNull(stringArg()), - }, - resolve: async (_root, args, _ctx) => - await compile(args.src, args.file, args.output, args.target), - }); - }, -}); - -export const schema = makeSchema({ - types: [Query], - outputs: { - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), - }, -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 588b452..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version`; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - uses: "denoland/setup-deno@v1", - with: { - "deno-version": "v1.37", - }, - }, - { - name: "Setup Fluent CI CLI", - run: "deno install -A -r https://cli.fluentci.io -n fluentci", - }, - { - name: "Setup Dagger", - run: setupDagger, - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index d2d2c88..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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.8.1 sh - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.fluentci/example/.vscode/settings.json b/.fluentci/example/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/.fluentci/example/README.md b/.fluentci/example/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/compile.gql b/.fluentci/example/.fluentci/example/compile.gql deleted file mode 100644 index 53d858d..0000000 --- a/.fluentci/example/.fluentci/example/compile.gql +++ /dev/null @@ -1,10 +0,0 @@ -{ - deno { - compile( - src: "." - file: "main.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) - } -} diff --git a/.fluentci/example/.fluentci/example/dagger.json b/.fluentci/example/.fluentci/example/dagger.json deleted file mode 100644 index 37c1f32..0000000 --- a/.fluentci/example/.fluentci/example/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/deno.json b/.fluentci/example/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/example/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/example/fmt.gql b/.fluentci/example/.fluentci/example/fmt.gql deleted file mode 100644 index 5548848..0000000 --- a/.fluentci/example/.fluentci/example/fmt.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - fmt(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/example/lint.gql b/.fluentci/example/.fluentci/example/lint.gql deleted file mode 100644 index 5d5ae9f..0000000 --- a/.fluentci/example/.fluentci/example/lint.gql +++ /dev/null @@ -1,5 +0,0 @@ -{ - deno { - lint(src: ".") - } -} diff --git a/.fluentci/example/.fluentci/example/main.ts b/.fluentci/example/.fluentci/example/main.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/example/.fluentci/example/main.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/example/.fluentci/example/main.tsx b/.fluentci/example/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 0b6b6c1..0000000 --- a/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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 - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index ea2e232..0000000 --- a/.fluentci/example/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/example/.fluentci/fixtures/buildspec.yml b/.fluentci/example/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 640fb2d..0000000 --- a/.fluentci/example/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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 - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/example/.fluentci/fixtures/config.yml b/.fluentci/example/.fluentci/fixtures/config.yml deleted file mode 100644 index bc81c99..0000000 --- a/.fluentci/example/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/example/.fluentci/fixtures/workflow.yml b/.fluentci/example/.fluentci/fixtures/workflow.yml deleted file mode 100644 index ebc92ad..0000000 --- a/.fluentci/example/.fluentci/fixtures/workflow.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@v2 - - 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/.fluentci/example/.fluentci/flake.lock b/.fluentci/example/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/example/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/example/.fluentci/flake.nix b/.fluentci/example/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/example/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/import_map.json b/.fluentci/example/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/example/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/example/.fluentci/introspect.ts b/.fluentci/example/.fluentci/introspect.ts deleted file mode 100644 index c6fa372..0000000 --- a/.fluentci/example/.fluentci/introspect.ts +++ /dev/null @@ -1,88 +0,0 @@ -import ts from "npm:typescript"; - -export type Metadata = { - functionName: string; - doc?: string; - parameters: { name: string; type: string; optional: boolean }[]; - returnType: string; -}; - -export default function introspect(source: string) { - const program = ts.createProgram([source], { experimentalDecorators: true }); - const files = program - .getSourceFiles() - .filter((file) => !file.isDeclarationFile); - - if (!files.length) { - throw new Error("No source file found"); - } - - const checker = program.getTypeChecker(); - const metadata: Metadata[] = []; - - for (const file of files) { - ts.forEachChild(file, (node) => { - if (ts.isFunctionDeclaration(node)) { - const signature = checker.getSignatureFromDeclaration(node); - const returnType = checker.getReturnTypeOfSignature(signature!); - const parameters = signature!.getParameters().map((parameter) => { - const parameterType = checker.getTypeOfSymbolAtLocation( - parameter, - parameter.valueDeclaration! - ); - const parameterName = parameter.getName(); - const parameterTypeString = checker.typeToString(parameterType); - const optional = isOptional(parameter); - return { parameterName, parameterTypeString, optional }; - }); - const functionName = node.name!.getText(); - const docTags = ts.getJSDocTags(node); - const returnTypeString = checker.typeToString(returnType); - - if ( - docTags.filter((tag) => tag.tagName.getText() === "function") - .length === 0 - ) { - return; - } - - metadata.push({ - functionName, - doc: docTags - .map((tag) => tag.comment) - .find((comment) => comment) as string, - parameters: parameters.map( - ({ parameterName, parameterTypeString, optional }) => ({ - name: parameterName, - type: parameterTypeString, - optional, - }) - ), - returnType: returnTypeString, - }); - } - }); - } - return metadata; -} - -function isOptional(param: ts.Symbol): boolean { - const declarations = param.getDeclarations(); - - // Only check if the parameters actually have declarations - if (declarations && declarations.length > 0) { - const parameterDeclaration = declarations[0]; - - // Convert the symbol declaration into Parameter - if (ts.isParameter(parameterDeclaration)) { - return ( - parameterDeclaration.questionToken !== undefined || - parameterDeclaration.initializer !== undefined - ); - } - } - - return false; -} - -console.log(introspect("mod.ts")); diff --git a/.fluentci/example/.fluentci/mod.ts b/.fluentci/example/.fluentci/mod.ts deleted file mode 100644 index fbc1f17..0000000 --- a/.fluentci/example/.fluentci/mod.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./src/dagger/index.ts"; diff --git a/.fluentci/example/.fluentci/sdk/client.gen.ts b/.fluentci/example/.fluentci/sdk/client.gen.ts deleted file mode 100644 index d18ad57..0000000 --- a/.fluentci/example/.fluentci/sdk/client.gen.ts +++ /dev/null @@ -1,5993 +0,0 @@ -/** - * This file was auto-generated by `client-gen`. - * Do not make direct changes to the file. - */ -import { GraphQLClient } from "../deps.ts" - -import { computeQuery } from "./utils.ts" - -/** - * @hidden - */ -export type QueryTree = { - operation: string - args?: Record -} - -/** - * @hidden - */ -export type Metadata = { - [key: string]: { - is_enum?: boolean - } -} - -interface ClientConfig { - queryTree?: QueryTree[] - host?: string - sessionToken?: string -} - -class BaseClient { - protected _queryTree: QueryTree[] - protected client: GraphQLClient - /** - * @defaultValue `127.0.0.1:8080` - */ - public clientHost: string - public sessionToken: string - - /** - * @hidden - */ - constructor({ queryTree, host, sessionToken }: ClientConfig = {}) { - this._queryTree = queryTree || [] - this.clientHost = host || "127.0.0.1:8080" - this.sessionToken = sessionToken || "" - this.client = new GraphQLClient(`http://${host}/query`, { - headers: { - Authorization: - "Basic " + btoa(sessionToken + ":"), - }, - }) - } - - /** - * @hidden - */ - get queryTree() { - return this._queryTree - } -} - -export type BuildArg = { - /** - * The build argument name. - */ - name: string - - /** - * The build argument value. - */ - value: string -} - -/** - * Sharing mode of the cache volume. - */ -export enum CacheSharingMode { - - /** - * Shares the cache volume amongst many build pipelines, - * but will serialize the writes - */ - Locked = "LOCKED", - - /** - * Keeps a cache volume for a single build pipeline - */ - Private = "PRIVATE", - - /** - * Shares the cache volume amongst many build pipelines - */ - Shared = "SHARED", -} -/** - * A global cache volume identifier. - */ -export type CacheVolumeID = string & {__CacheVolumeID: never} - -export type ContainerAsTarballOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerBuildOpts = { - /** - * Path to the Dockerfile to use. - * - * Default: './Dockerfile'. - */ - dockerfile?: string - - /** - * Additional build arguments. - */ - buildArgs?: BuildArg[] - - /** - * Target build stage to build. - */ - target?: string - - /** - * Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name] in the build container - * - * They can be accessed in the Dockerfile using the "secret" mount type - * and mount path /run/secrets/[secret-name] - * e.g. RUN --mount=type=secret,id=my-secret curl url?token=$(cat /run/secrets/my-secret)" - */ - secrets?: Secret[] -} - -export type ContainerExportOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the exported image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the exported image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerImportOpts = { - /** - * Identifies the tag to import from the archive, if the archive bundles - * multiple tags. - */ - tag?: string -} - -export type ContainerPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type ContainerPublishOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the published image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the published image's layers. Defaults to OCI, which - * is largely compatible with most recent registries, but Docker may be needed for older - * registries without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerWithDefaultArgsOpts = { - /** - * Arguments to prepend to future executions (e.g., ["-v", "--no-cache"]). - */ - args?: string[] -} - -export type ContainerWithDirectoryOpts = { - /** - * Patterns to exclude in the written directory (e.g., ["node_modules/**", ".gitignore", ".git/"]). - */ - exclude?: string[] - - /** - * Patterns to include in the written directory (e.g., ["*.go", "go.mod", "go.sum"]). - */ - include?: string[] - - /** - * A user:group to set for the directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithEnvVariableOpts = { - /** - * Replace ${VAR} or $VAR in the value according to the current environment - * variables defined in the container (e.g., "/opt/bin:$PATH"). - */ - expand?: boolean -} - -export type ContainerWithExecOpts = { - /** - * If the container has an entrypoint, ignore it for args rather than using it to wrap them. - */ - skipEntrypoint?: boolean - - /** - * Content to write to the command's standard input before closing (e.g., "Hello world"). - */ - stdin?: string - - /** - * Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout"). - */ - redirectStdout?: string - - /** - * Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr"). - */ - redirectStderr?: string - - /** - * Provides dagger access to the executed command. - * - * Do not use this option unless you trust the command being executed. - * The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM. - */ - experimentalPrivilegedNesting?: boolean - - /** - * Execute the command with all root capabilities. This is similar to running a command - * with "sudo" or executing `docker run` with the `--privileged` flag. Containerization - * does not provide any security guarantees when using this option. It should only be used - * when absolutely necessary and only with trusted commands. - */ - insecureRootCapabilities?: boolean -} - -export type ContainerWithExposedPortOpts = { - /** - * Transport layer network protocol - */ - protocol?: NetworkProtocol - - /** - * Optional port description - */ - description?: string -} - -export type ContainerWithFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number - - /** - * A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedCacheOpts = { - /** - * Identifier of the directory to use as the cache volume's root. - */ - source?: Directory - - /** - * Sharing mode of the cache volume. - */ - sharing?: CacheSharingMode - - /** - * A user:group to set for the mounted cache directory. - * - * Note that this changes the ownership of the specified mount along with the - * initial filesystem provided by source (if any). It does not have any effect - * if/when the cache has already been created. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedDirectoryOpts = { - /** - * A user:group to set for the mounted directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedFileOpts = { - /** - * A user or user:group to set for the mounted file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedSecretOpts = { - /** - * A user:group to set for the mounted secret. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string - - /** - * Permission given to the mounted secret (e.g., 0600). - * This option requires an owner to be set to be active. - * - * Default: 0400. - */ - mode?: number -} - -export type ContainerWithNewFileOpts = { - /** - * Content of the file to write (e.g., "Hello world!"). - */ - contents?: string - - /** - * Permission given to the written file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number - - /** - * A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithUnixSocketOpts = { - /** - * A user:group to set for the mounted socket. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithoutExposedPortOpts = { - /** - * Port protocol to unexpose - */ - protocol?: NetworkProtocol -} - -/** - * A unique container identifier. Null designates an empty container (scratch). - */ -export type ContainerID = string & {__ContainerID: never} - -/** - * The `DateTime` scalar type represents a DateTime. The DateTime is serialized as an RFC 3339 quoted string - */ -export type DateTime = string & {__DateTime: never} - -export type DirectoryAsModuleOpts = { - /** - * An optional subpath of the directory which contains the module's source - * code. - * - * This is needed when the module code is in a subdirectory but requires - * parent directories to be loaded in order to execute. For example, the - * module source code may need a go.mod, project.toml, package.json, etc. file - * from a parent directory. - * - * If not set, the module source code is loaded from the root of the - * directory. - */ - sourceSubpath?: string -} - -export type DirectoryDockerBuildOpts = { - /** - * Path to the Dockerfile to use (e.g., "frontend.Dockerfile"). - * - * Defaults: './Dockerfile'. - */ - dockerfile?: string - - /** - * The platform to build. - */ - platform?: Platform - - /** - * Build arguments to use in the build. - */ - buildArgs?: BuildArg[] - - /** - * Target build stage to build. - */ - target?: string - - /** - * Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name]. - */ - secrets?: Secret[] -} - -export type DirectoryEntriesOpts = { - /** - * Location of the directory to look at (e.g., "/src"). - */ - path?: string -} - -export type DirectoryPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type DirectoryWithDirectoryOpts = { - /** - * Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - */ - exclude?: string[] - - /** - * Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - include?: string[] -} - -export type DirectoryWithFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number -} - -export type DirectoryWithNewDirectoryOpts = { - /** - * Permission granted to the created directory (e.g., 0777). - * - * Default: 0755. - */ - permissions?: number -} - -export type DirectoryWithNewFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number -} - -/** - * A content-addressed directory identifier. - */ -export type DirectoryID = string & {__DirectoryID: never} - -export type FileExportOpts = { - /** - * If allowParentDirPath is true, the path argument can be a directory path, in which case - * the file will be created in that directory. - */ - allowParentDirPath?: boolean -} - -/** - * A file identifier. - */ -export type FileID = string & {__FileID: never} - -export type FunctionWithArgOpts = { - /** - * A doc string for the argument, if any - */ - description?: string - - /** - * A default value to use for this argument if not explicitly set by the caller, if any - */ - defaultValue?: JSON -} - -/** - * A reference to a FunctionArg. - */ -export type FunctionArgID = string & {__FunctionArgID: never} - -/** - * A reference to a Function. - */ -export type FunctionID = string & {__FunctionID: never} - -/** - * A reference to GeneratedCode. - */ -export type GeneratedCodeID = string & {__GeneratedCodeID: never} - -export type GitRefTreeOpts = { - sshKnownHosts?: string - sshAuthSocket?: Socket -} - -export type HostDirectoryOpts = { - /** - * Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - */ - exclude?: string[] - - /** - * Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - include?: string[] -} - -export type HostServiceOpts = { - /** - * Upstream host to forward traffic to. - */ - host?: string -} - -export type HostTunnelOpts = { - /** - * Map each service port to the same port on the host, as if the service were - * running natively. - * - * Note: enabling may result in port conflicts. - */ - native?: boolean - - /** - * Configure explicit port forwarding rules for the tunnel. - * - * If a port's frontend is unspecified or 0, a random port will be chosen by - * the host. - * - * If no ports are given, all of the service's ports are forwarded. If native - * is true, each port maps to the same port on the host. If native is false, - * each port maps to a random port chosen by the host. - * - * If ports are given and native is true, the ports are additive. - */ - ports?: PortForward[] -} - -/** - * The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. - */ -export type ID = string & {__ID: never} - -/** - * Compression algorithm to use for image layers. - */ -export enum ImageLayerCompression { - Estargz = "EStarGZ", - Gzip = "Gzip", - Uncompressed = "Uncompressed", - Zstd = "Zstd", -} -/** - * Mediatypes to use in published or exported image metadata. - */ -export enum ImageMediaTypes { - Dockermediatypes = "DockerMediaTypes", - Ocimediatypes = "OCIMediaTypes", -} -/** - * An arbitrary JSON-encoded value. - */ -export type JSON = string & {__JSON: never} - -/** - * A reference to a Module. - */ -export type ModuleID = string & {__ModuleID: never} - -/** - * Transport layer network protocol associated to a port. - */ -export enum NetworkProtocol { - - /** - * TCP (Transmission Control Protocol) - */ - Tcp = "TCP", - - /** - * UDP (User Datagram Protocol) - */ - Udp = "UDP", -} -export type PipelineLabel = { - /** - * Label name. - */ - name: string - - /** - * Label value. - */ - value: string -} - -/** - * The platform config OS and architecture in a Container. - * - * The format is [os]/[platform]/[version] (e.g., "darwin/arm64/v7", "windows/amd64", "linux/arm64"). - */ -export type Platform = string & {__Platform: never} - -export type PortForward = { - /** - * Destination port for traffic. - */ - backend: number - - /** - * Port to expose to clients. If unspecified, a default will be chosen. - */ - frontend?: number - - /** - * Protocol to use for traffic. - */ - protocol?: NetworkProtocol -} - -export type ClientContainerOpts = { - id?: ContainerID - platform?: Platform -} - -export type ClientDirectoryOpts = { - id?: DirectoryID -} - -export type ClientGitOpts = { - /** - * Set to true to keep .git directory. - */ - keepGitDir?: boolean - - /** - * Set SSH known hosts - */ - sshKnownHosts?: string - - /** - * Set SSH auth socket - */ - sshAuthSocket?: Socket - - /** - * A service which must be started before the repo is fetched. - */ - experimentalServiceHost?: Service -} - -export type ClientHttpOpts = { - /** - * A service which must be started before the URL is fetched. - */ - experimentalServiceHost?: Service -} - -export type ClientModuleConfigOpts = { - subpath?: string -} - -export type ClientPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type ClientSocketOpts = { - id?: SocketID -} - -/** - * A unique identifier for a secret. - */ -export type SecretID = string & {__SecretID: never} - -export type ServiceEndpointOpts = { - /** - * The exposed port number for the endpoint - */ - port?: number - - /** - * Return a URL with the given scheme, eg. http for http:// - */ - scheme?: string -} - -/** - * A unique service identifier. - */ -export type ServiceID = string & {__ServiceID: never} - -/** - * A content-addressed socket identifier. - */ -export type SocketID = string & {__SocketID: never} - -export type TypeDefWithFieldOpts = { - /** - * A doc string for the field, if any - */ - description?: string -} - -export type TypeDefWithObjectOpts = { - description?: string -} - -/** - * A reference to a TypeDef. - */ -export type TypeDefID = string & {__TypeDefID: never} - -/** - * Distinguishes the different kinds of TypeDefs. - */ -export enum TypeDefKind { - - /** - * A boolean value - */ - Booleankind = "BooleanKind", - - /** - * An integer value - */ - Integerkind = "IntegerKind", - - /** - * A list of values all having the same type. - * - * Always paired with a ListTypeDef. - */ - Listkind = "ListKind", - - /** - * A named type defined in the GraphQL schema, with fields and functions. - * - * Always paired with an ObjectTypeDef. - */ - Objectkind = "ObjectKind", - - /** - * A string value - */ - Stringkind = "StringKind", - - /** - * A special kind used to signify that no value is returned. - * - * This is used for functions that have no return value. The outer TypeDef - * specifying this Kind is always Optional, as the Void is never actually - * represented. - */ - Voidkind = "VoidKind", -} -/** - * The absense of a value. - * - * A Null Void is used as a placeholder for resolvers that do not return anything. - */ -export type Void = string & {__Void: never} - -export type __TypeEnumValuesOpts = { - includeDeprecated?: boolean -} - -export type __TypeFieldsOpts = { - includeDeprecated?: boolean -} - - - - - - - - -/** - * A directory whose contents persist across runs. - */ -export class CacheVolume extends BaseClient { - private readonly _id?: CacheVolumeID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: CacheVolumeID, - ) { - super(parent) - - this._id = _id - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } -} - - - -/** - * An OCI-compatible container, also known as a docker container. - */ -export class Container extends BaseClient { - private readonly _id?: ContainerID = undefined - private readonly _envVariable?: string = undefined - private readonly _export?: boolean = undefined - private readonly _imageRef?: string = undefined - private readonly _label?: string = undefined - private readonly _platform?: Platform = undefined - private readonly _publish?: string = undefined - private readonly _shellEndpoint?: string = undefined - private readonly _stderr?: string = undefined - private readonly _stdout?: string = undefined - private readonly _sync?: ContainerID = undefined - private readonly _user?: string = undefined - private readonly _workdir?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ContainerID, - _envVariable?: string, - _export?: boolean, - _imageRef?: string, - _label?: string, - _platform?: Platform, - _publish?: string, - _shellEndpoint?: string, - _stderr?: string, - _stdout?: string, - _sync?: ContainerID, - _user?: string, - _workdir?: string, - ) { - super(parent) - - this._id = _id - this._envVariable = _envVariable - this._export = _export - this._imageRef = _imageRef - this._label = _label - this._platform = _platform - this._publish = _publish - this._shellEndpoint = _shellEndpoint - this._stderr = _stderr - this._stdout = _stdout - this._sync = _sync - this._user = _user - this._workdir = _workdir - } - - /** - * A unique identifier for this container. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Turn the container into a Service. - * - * Be sure to set any exposed ports before this conversion. - */ - asService(): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "asService", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a File representing the container serialized to a tarball. - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - asTarball(opts?: ContainerAsTarballOpts): File { - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "asTarball", - args: { ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from a Dockerfile build. - * @param context Directory context used by the Dockerfile. - * @param opts.dockerfile Path to the Dockerfile to use. - * - * Default: './Dockerfile'. - * @param opts.buildArgs Additional build arguments. - * @param opts.target Target build stage to build. - * @param opts.secrets Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name] in the build container - * - * They can be accessed in the Dockerfile using the "secret" mount type - * and mount path /run/secrets/[secret-name] - * e.g. RUN --mount=type=secret,id=my-secret curl url?token=$(cat /run/secrets/my-secret)" - */ - build(context: Directory, opts?: ContainerBuildOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "build", - args: { context, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves default arguments for future commands. - */ - async defaultArgs(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultArgs", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a directory at the given path. - * - * Mounts are included. - * @param path The path of the directory to retrieve (e.g., "./src"). - */ - directory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves entrypoint to be prepended to the arguments of all commands. - */ - async entrypoint(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "entrypoint", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the value of the specified environment variable. - * @param name The name of the environment variable to retrieve (e.g., "PATH"). - */ - async envVariable(name: string): Promise { - if (this._envVariable) { - return this._envVariable - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "envVariable", - args: { name }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of environment variables passed to commands. - */ - async envVariables(): Promise { - type envVariables = { - name: string - value: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "envVariables", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new EnvVariable( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * EXPERIMENTAL API! Subject to change/removal at any time. - * - * experimentalWithAllGPUs configures all available GPUs on the host to be accessible to this container. - * This currently works for Nvidia devices only. - */ - experimentalWithAllGPUs(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "experimentalWithAllGPUs", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * EXPERIMENTAL API! Subject to change/removal at any time. - * - * experimentalWithGPU configures the provided list of devices to be accesible to this container. - * This currently works for Nvidia devices only. - */ - experimentalWithGPU(devices: string[]): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "experimentalWithGPU", - args: { devices }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Writes the container as an OCI tarball to the destination file path on the host for the specified platform variants. - * - * Return true on success. - * It can also publishes platform variants. - * @param path Host's destination path (e.g., "./tarball"). - * Path can be relative to the engine's workdir or absolute. - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the exported image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the exported image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - async export(path: string, opts?: ContainerExportOpts): Promise { - if (this._export) { - return this._export - } - - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path, ...opts, __metadata: metadata }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of exposed ports. - * - * This includes ports already exposed by the image, even if not - * explicitly added with dagger. - */ - async exposedPorts(): Promise { - type exposedPorts = { - description: string - port: number - protocol: NetworkProtocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "exposedPorts", - }, - { - operation: "description port protocol" - }, - ], - this.client - ) - - - return response.map( - (r) => new Port( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.port, - r.protocol, - ) - ) - } - - /** - * Retrieves a file at the given path. - * - * Mounts are included. - * @param path The path of the file to retrieve (e.g., "./README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from a pulled base image. - * @param address Image's address from its registry. - * - * Formatted as [host]/[user]/[repo]:[tag] (e.g., "docker.io/dagger/dagger:main"). - */ - from(address: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "from", - args: { address }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The unique image reference which can only be retrieved immediately after the 'Container.From' call. - */ - async imageRef(): Promise { - if (this._imageRef) { - return this._imageRef - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "imageRef", - }, - ], - this.client - ) - - - return response - } - - /** - * Reads the container from an OCI tarball. - * - * NOTE: this involves unpacking the tarball to an OCI store on the host at - * $XDG_CACHE_DIR/dagger/oci. This directory can be removed whenever you like. - * @param source File to read the container from. - * @param opts.tag Identifies the tag to import from the archive, if the archive bundles - * multiple tags. - */ - import_(source: File, opts?: ContainerImportOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "import", - args: { source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves the value of the specified label. - */ - async label(name: string): Promise { - if (this._label) { - return this._label - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "label", - args: { name }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of labels passed to container. - */ - async labels(): Promise { - type labels = { - name: string - value: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "labels", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new Label( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * Retrieves the list of paths where a directory is mounted. - */ - async mounts(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "mounts", - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a named sub-pipeline - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: ContainerPipelineOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The platform this container executes and publishes as. - */ - async platform(): Promise { - if (this._platform) { - return this._platform - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "platform", - }, - ], - this.client - ) - - - return response - } - - /** - * Publishes this container as a new image to the specified address. - * - * Publish returns a fully qualified ref. - * It can also publish platform variants. - * @param address Registry's address to publish the image to. - * - * Formatted as [host]/[user]/[repo]:[tag] (e.g. "docker.io/dagger/dagger:main"). - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the published image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the published image's layers. Defaults to OCI, which - * is largely compatible with most recent registries, but Docker may be needed for older - * registries without OCI support. - */ - async publish(address: string, opts?: ContainerPublishOpts): Promise { - if (this._publish) { - return this._publish - } - - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "publish", - args: { address, ...opts, __metadata: metadata }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves this container's root filesystem. Mounts are not included. - */ - rootfs(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "rootfs", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Return a websocket endpoint that, if connected to, will start the container with a TTY streamed - * over the websocket. - * - * Primarily intended for internal use with the dagger CLI. - */ - async shellEndpoint(): Promise { - if (this._shellEndpoint) { - return this._shellEndpoint - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "shellEndpoint", - }, - ], - this.client - ) - - - return response - } - - /** - * The error stream of the last executed command. - * - * Will execute default command if none is set, or error if there's no default. - */ - async stderr(): Promise { - if (this._stderr) { - return this._stderr - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "stderr", - }, - ], - this.client - ) - - - return response - } - - /** - * The output stream of the last executed command. - * - * Will execute default command if none is set, or error if there's no default. - */ - async stdout(): Promise { - if (this._stdout) { - return this._stdout - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "stdout", - }, - ], - this.client - ) - - - return response - } - - /** - * Forces evaluation of the pipeline in the engine. - * - * It doesn't run the default command if no exec has been set. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves the user to be set for all commands. - */ - async user(): Promise { - if (this._user) { - return this._user - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "user", - }, - ], - this.client - ) - - - return response - } - - /** - * Configures default arguments for future commands. - * @param opts.args Arguments to prepend to future executions (e.g., ["-v", "--no-cache"]). - */ - withDefaultArgs(opts?: ContainerWithDefaultArgsOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withDefaultArgs", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a directory written at the given path. - * @param path Location of the written directory (e.g., "/tmp/directory"). - * @param directory Identifier of the directory to write - * @param opts.exclude Patterns to exclude in the written directory (e.g., ["node_modules/**", ".gitignore", ".git/"]). - * @param opts.include Patterns to include in the written directory (e.g., ["*.go", "go.mod", "go.sum"]). - * @param opts.owner A user:group to set for the directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withDirectory(path: string, directory: Directory, opts?: ContainerWithDirectoryOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withDirectory", - args: { path, directory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container but with a different command entrypoint. - * @param args Entrypoint to use for future executions (e.g., ["go", "run"]). - */ - withEntrypoint(args: string[]): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withEntrypoint", - args: { args }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the given environment variable. - * @param name The name of the environment variable (e.g., "HOST"). - * @param value The value of the environment variable. (e.g., "localhost"). - * @param opts.expand Replace ${VAR} or $VAR in the value according to the current environment - * variables defined in the container (e.g., "/opt/bin:$PATH"). - */ - withEnvVariable(name: string, value: string, opts?: ContainerWithEnvVariableOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withEnvVariable", - args: { name, value, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container after executing the specified command inside it. - * @param args Command to run instead of the container's default command (e.g., ["run", "main.go"]). - * - * If empty, the container's default command is used. - * @param opts.skipEntrypoint If the container has an entrypoint, ignore it for args rather than using it to wrap them. - * @param opts.stdin Content to write to the command's standard input before closing (e.g., "Hello world"). - * @param opts.redirectStdout Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout"). - * @param opts.redirectStderr Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr"). - * @param opts.experimentalPrivilegedNesting Provides dagger access to the executed command. - * - * Do not use this option unless you trust the command being executed. - * The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM. - * @param opts.insecureRootCapabilities Execute the command with all root capabilities. This is similar to running a command - * with "sudo" or executing `docker run` with the `--privileged` flag. Containerization - * does not provide any security guarantees when using this option. It should only be used - * when absolutely necessary and only with trusted commands. - */ - withExec(args: string[], opts?: ContainerWithExecOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withExec", - args: { args, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Expose a network port. - * - * Exposed ports serve two purposes: - * - For health checks and introspection, when running services - * - For setting the EXPOSE OCI field when publishing the container - * @param port Port number to expose - * @param opts.protocol Transport layer network protocol - * @param opts.description Optional port description - */ - withExposedPort(port: number, opts?: ContainerWithExposedPortOpts): Container { - const metadata: Metadata = { - protocol: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withExposedPort", - args: { port, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the contents of the given file copied to the given path. - * @param path Location of the copied file (e.g., "/tmp/file.txt"). - * @param source Identifier of the file to copy. - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - * @param opts.owner A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withFile(path: string, source: File, opts?: ContainerWithFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Indicate that subsequent operations should be featured more prominently in - * the UI. - */ - withFocus(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withFocus", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the given label. - * @param name The name of the label (e.g., "org.opencontainers.artifact.created"). - * @param value The value of the label (e.g., "2023-01-01T00:00:00Z"). - */ - withLabel(name: string, value: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withLabel", - args: { name, value }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a cache volume mounted at the given path. - * @param path Location of the cache directory (e.g., "/cache/node_modules"). - * @param cache Identifier of the cache volume to mount. - * @param opts.source Identifier of the directory to use as the cache volume's root. - * @param opts.sharing Sharing mode of the cache volume. - * @param opts.owner A user:group to set for the mounted cache directory. - * - * Note that this changes the ownership of the specified mount along with the - * initial filesystem provided by source (if any). It does not have any effect - * if/when the cache has already been created. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedCache(path: string, cache: CacheVolume, opts?: ContainerWithMountedCacheOpts): Container { - const metadata: Metadata = { - sharing: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedCache", - args: { path, cache, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a directory mounted at the given path. - * @param path Location of the mounted directory (e.g., "/mnt/directory"). - * @param source Identifier of the mounted directory. - * @param opts.owner A user:group to set for the mounted directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedDirectory(path: string, source: Directory, opts?: ContainerWithMountedDirectoryOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedDirectory", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a file mounted at the given path. - * @param path Location of the mounted file (e.g., "/tmp/file.txt"). - * @param source Identifier of the mounted file. - * @param opts.owner A user or user:group to set for the mounted file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedFile(path: string, source: File, opts?: ContainerWithMountedFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a secret mounted into a file at the given path. - * @param path Location of the secret file (e.g., "/tmp/secret.txt"). - * @param source Identifier of the secret to mount. - * @param opts.owner A user:group to set for the mounted secret. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - * @param opts.mode Permission given to the mounted secret (e.g., 0600). - * This option requires an owner to be set to be active. - * - * Default: 0400. - */ - withMountedSecret(path: string, source: Secret, opts?: ContainerWithMountedSecretOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedSecret", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a temporary directory mounted at the given path. - * @param path Location of the temporary directory (e.g., "/tmp/temp_dir"). - */ - withMountedTemp(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedTemp", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a new file written at the given path. - * @param path Location of the written file (e.g., "/tmp/file.txt"). - * @param opts.contents Content of the file to write (e.g., "Hello world!"). - * @param opts.permissions Permission given to the written file (e.g., 0600). - * - * Default: 0644. - * @param opts.owner A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withNewFile(path: string, opts?: ContainerWithNewFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewFile", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a registry authentication for a given address. - * @param address Registry's address to bind the authentication to. - * Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main). - * @param username The username of the registry's account (e.g., "Dagger"). - * @param secret The API key, password or token to authenticate to this registry. - */ - withRegistryAuth(address: string, username: string, secret: Secret): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withRegistryAuth", - args: { address, username, secret }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from this DirectoryID. - */ - withRootfs(directory: Directory): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withRootfs", - args: { directory }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus an env variable containing the given secret. - * @param name The name of the secret variable (e.g., "API_SECRET"). - * @param secret The identifier of the secret value. - */ - withSecretVariable(name: string, secret: Secret): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withSecretVariable", - args: { name, secret }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Establish a runtime dependency on a service. - * - * The service will be started automatically when needed and detached when it is - * no longer needed, executing the default command if none is set. - * - * The service will be reachable from the container via the provided hostname alias. - * - * The service dependency will also convey to any files or directories produced by the container. - * @param alias A name that can be used to reach the service from the container - * @param service Identifier of the service container - */ - withServiceBinding(alias: string, service: Service): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withServiceBinding", - args: { alias, service }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a socket forwarded to the given Unix socket path. - * @param path Location of the forwarded Unix socket (e.g., "/tmp/socket"). - * @param source Identifier of the socket to forward. - * @param opts.owner A user:group to set for the mounted socket. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withUnixSocket(path: string, source: Socket, opts?: ContainerWithUnixSocketOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withUnixSocket", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a different command user. - * @param name The user to set (e.g., "root"). - */ - withUser(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withUser", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a different working directory. - * @param path The path to set as the working directory (e.g., "/app"). - */ - withWorkdir(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withWorkdir", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container minus the given environment variable. - * @param name The name of the environment variable (e.g., "HOST"). - */ - withoutEnvVariable(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutEnvVariable", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Unexpose a previously exposed port. - * @param port Port number to unexpose - * @param opts.protocol Port protocol to unexpose - */ - withoutExposedPort(port: number, opts?: ContainerWithoutExposedPortOpts): Container { - const metadata: Metadata = { - protocol: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutExposedPort", - args: { port, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Indicate that subsequent operations should not be featured more prominently - * in the UI. - * - * This is the initial state of all containers. - */ - withoutFocus(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutFocus", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container minus the given environment label. - * @param name The name of the label to remove (e.g., "org.opencontainers.artifact.created"). - */ - withoutLabel(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutLabel", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container after unmounting everything at the given path. - * @param path Location of the cache directory (e.g., "/cache/node_modules"). - */ - withoutMount(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutMount", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container without the registry authentication of a given address. - * @param address Registry's address to remove the authentication from. - * Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main). - */ - withoutRegistryAuth(address: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutRegistryAuth", - args: { address }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a previously added Unix socket removed. - * @param path Location of the socket to remove (e.g., "/tmp/socket"). - */ - withoutUnixSocket(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutUnixSocket", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves the working directory for all commands. - */ - async workdir(): Promise { - if (this._workdir) { - return this._workdir - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "workdir", - }, - ], - this.client - ) - - - return response - } - - /** - * Call the provided function with current Container. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Container) => Container) { - return arg(this) - } -} - - - - - -/** - * A directory. - */ -export class Directory extends BaseClient { - private readonly _id?: DirectoryID = undefined - private readonly _export?: boolean = undefined - private readonly _sync?: DirectoryID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: DirectoryID, - _export?: boolean, - _sync?: DirectoryID, - ) { - super(parent) - - this._id = _id - this._export = _export - this._sync = _sync - } - - /** - * The content-addressed identifier of the directory. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Load the directory as a Dagger module - * @param opts.sourceSubpath An optional subpath of the directory which contains the module's source - * code. - * - * This is needed when the module code is in a subdirectory but requires - * parent directories to be loaded in order to execute. For example, the - * module source code may need a go.mod, project.toml, package.json, etc. file - * from a parent directory. - * - * If not set, the module source code is loaded from the root of the - * directory. - */ - asModule(opts?: DirectoryAsModuleOpts): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "asModule", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Gets the difference between this directory and an another directory. - * @param other Identifier of the directory to compare. - */ - diff(other: Directory): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "diff", - args: { other }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves a directory at the given path. - * @param path Location of the directory to retrieve (e.g., "/src"). - */ - directory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Builds a new Docker container from this directory. - * @param opts.dockerfile Path to the Dockerfile to use (e.g., "frontend.Dockerfile"). - * - * Defaults: './Dockerfile'. - * @param opts.platform The platform to build. - * @param opts.buildArgs Build arguments to use in the build. - * @param opts.target Target build stage to build. - * @param opts.secrets Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name]. - */ - dockerBuild(opts?: DirectoryDockerBuildOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "dockerBuild", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a list of files and directories at the given path. - * @param opts.path Location of the directory to look at (e.g., "/src"). - */ - async entries(opts?: DirectoryEntriesOpts): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "entries", - args: { ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Writes the contents of the directory to a path on the host. - * @param path Location of the copied directory (e.g., "logs/"). - */ - async export(path: string): Promise { - if (this._export) { - return this._export - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a file at the given path. - * @param path Location of the file to retrieve (e.g., "README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a list of files and directories that matche the given pattern. - * @param pattern Pattern to match (e.g., "*.md"). - */ - async glob(pattern: string): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "glob", - args: { pattern }, - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a named sub-pipeline - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: DirectoryPipelineOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Force evaluation in the engine. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves this directory plus a directory written at the given path. - * @param path Location of the written directory (e.g., "/src/"). - * @param directory Identifier of the directory to copy. - * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - withDirectory(path: string, directory: Directory, opts?: DirectoryWithDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withDirectory", - args: { path, directory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus the contents of the given file copied to the given path. - * @param path Location of the copied file (e.g., "/file.txt"). - * @param source Identifier of the file to copy. - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - withFile(path: string, source: File, opts?: DirectoryWithFileOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus a new directory created at the given path. - * @param path Location of the directory created (e.g., "/logs"). - * @param opts.permissions Permission granted to the created directory (e.g., 0777). - * - * Default: 0755. - */ - withNewDirectory(path: string, opts?: DirectoryWithNewDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewDirectory", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus a new file written at the given path. - * @param path Location of the written file (e.g., "/file.txt"). - * @param contents Content of the written file (e.g., "Hello world!"). - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - withNewFile(path: string, contents: string, opts?: DirectoryWithNewFileOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewFile", - args: { path, contents, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with all file/dir timestamps set to the given time. - * @param timestamp Timestamp to set dir/files in. - * - * Formatted in seconds following Unix epoch (e.g., 1672531199). - */ - withTimestamps(timestamp: number): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withTimestamps", - args: { timestamp }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with the directory at the given path removed. - * @param path Location of the directory to remove (e.g., ".github/"). - */ - withoutDirectory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutDirectory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with the file at the given path removed. - * @param path Location of the file to remove (e.g., "/file.txt"). - */ - withoutFile(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutFile", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Directory. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Directory) => Directory) { - return arg(this) - } -} - - - -/** - * A simple key value object that represents an environment variable. - */ -export class EnvVariable extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: string, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The environment variable name. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The environment variable value. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - -/** - * A definition of a field on a custom object defined in a Module. - * A field on an object has a static value, as opposed to a function on an - * object whose value is computed by invoking code (and can accept arguments). - */ -export class FieldTypeDef extends BaseClient { - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _name?: string, - ) { - super(parent) - - this._description = _description - this._name = _name - } - - /** - * A doc string for the field, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the field in the object - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type of the field - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * A file. - */ -export class File extends BaseClient { - private readonly _id?: FileID = undefined - private readonly _contents?: string = undefined - private readonly _export?: boolean = undefined - private readonly _size?: number = undefined - private readonly _sync?: FileID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FileID, - _contents?: string, - _export?: boolean, - _size?: number, - _sync?: FileID, - ) { - super(parent) - - this._id = _id - this._contents = _contents - this._export = _export - this._size = _size - this._sync = _sync - } - - /** - * Retrieves the content-addressed identifier of the file. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the contents of the file. - */ - async contents(): Promise { - if (this._contents) { - return this._contents - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "contents", - }, - ], - this.client - ) - - - return response - } - - /** - * Writes the file to a file path on the host. - * @param path Location of the written directory (e.g., "output.txt"). - * @param opts.allowParentDirPath If allowParentDirPath is true, the path argument can be a directory path, in which case - * the file will be created in that directory. - */ - async export(path: string, opts?: FileExportOpts): Promise { - if (this._export) { - return this._export - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path, ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Gets the size of the file, in bytes. - */ - async size(): Promise { - if (this._size) { - return this._size - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "size", - }, - ], - this.client - ) - - - return response - } - - /** - * Force evaluation in the engine. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves this file with its created/modified timestamps set to the given time. - * @param timestamp Timestamp to set dir/files in. - * - * Formatted in seconds following Unix epoch (e.g., 1672531199). - */ - withTimestamps(timestamp: number): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "withTimestamps", - args: { timestamp }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current File. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: File) => File) { - return arg(this) - } -} - - - - - -/** - * Function represents a resolver provided by a Module. - * - * A function always evaluates against a parent object and is given a set of - * named arguments. - */ -export class Function_ extends BaseClient { - private readonly _id?: FunctionID = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FunctionID, - _description?: string, - _name?: string, - ) { - super(parent) - - this._id = _id - this._description = _description - this._name = _name - } - - /** - * The ID of the function - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Arguments accepted by this function, if any - */ - async args(): Promise { - type args = { - id: FunctionArgID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "args", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new FunctionArg( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * A doc string for the function, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the function - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type returned by this function - */ - returnType(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "returnType", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns the function with the provided argument - * @param name The name of the argument - * @param typeDef The type of the argument - * @param opts.description A doc string for the argument, if any - * @param opts.defaultValue A default value to use for this argument if not explicitly set by the caller, if any - */ - withArg(name: string, typeDef: TypeDef, opts?: FunctionWithArgOpts): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "withArg", - args: { name, typeDef, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns the function with the doc string - */ - withDescription(description: string): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "withDescription", - args: { description }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Function. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Function_) => Function_) { - return arg(this) - } -} - -/** - * An argument accepted by a function. - * - * This is a specification for an argument at function definition time, not an - * argument passed at function call time. - */ -export class FunctionArg extends BaseClient { - private readonly _id?: FunctionArgID = undefined - private readonly _defaultValue?: JSON = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FunctionArgID, - _defaultValue?: JSON, - _description?: string, - _name?: string, - ) { - super(parent) - - this._id = _id - this._defaultValue = _defaultValue - this._description = _description - this._name = _name - } - - /** - * The ID of the argument - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * A default value to use for this argument when not explicitly set by the caller, if any - */ - async defaultValue(): Promise { - if (this._defaultValue) { - return this._defaultValue - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultValue", - }, - ], - this.client - ) - - - return response - } - - /** - * A doc string for the argument, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the argument - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type of the argument - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - - - -export class FunctionCall extends BaseClient { - private readonly _name?: string = undefined - private readonly _parent?: JSON = undefined - private readonly _parentName?: string = undefined - private readonly _returnValue?: Void = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _parent?: JSON, - _parentName?: string, - _returnValue?: Void, - ) { - super(parent) - - this._name = _name - this._parent = _parent - this._parentName = _parentName - this._returnValue = _returnValue - } - - /** - * The argument values the function is being invoked with. - */ - async inputArgs(): Promise { - type inputArgs = { - name: string - value: JSON - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "inputArgs", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new FunctionCallArgValue( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * The name of the function being called. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of the parent object of the function being called. - * If the function is "top-level" to the module, this is always an empty object. - */ - async parent(): Promise { - if (this._parent) { - return this._parent - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "parent", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the parent object of the function being called. - * If the function is "top-level" to the module, this is the name of the module. - */ - async parentName(): Promise { - if (this._parentName) { - return this._parentName - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "parentName", - }, - ], - this.client - ) - - - return response - } - - /** - * Set the return value of the function call to the provided value. - * The value should be a string of the JSON serialization of the return value. - */ - async returnValue(value: JSON): Promise { - if (this._returnValue) { - return this._returnValue - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "returnValue", - args: { value }, - }, - ], - this.client - ) - - - return response - } -} - - -export class FunctionCallArgValue extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: JSON = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: JSON, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The name of the argument. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of the argument represented as a string of the JSON serialization. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class GeneratedCode extends BaseClient { - private readonly _id?: GeneratedCodeID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: GeneratedCodeID, - ) { - super(parent) - - this._id = _id - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * The directory containing the generated code - */ - code(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "code", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * List of paths to mark generated in version control (i.e. .gitattributes) - */ - async vcsGeneratedPaths(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "vcsGeneratedPaths", - }, - ], - this.client - ) - - - return response - } - - /** - * List of paths to ignore in version control (i.e. .gitignore) - */ - async vcsIgnoredPaths(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "vcsIgnoredPaths", - }, - ], - this.client - ) - - - return response - } - - /** - * Set the list of paths to mark generated in version control - */ - withVCSGeneratedPaths(paths: string[]): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "withVCSGeneratedPaths", - args: { paths }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Set the list of paths to ignore in version control - */ - withVCSIgnoredPaths(paths: string[]): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "withVCSIgnoredPaths", - args: { paths }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current GeneratedCode. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: GeneratedCode) => GeneratedCode) { - return arg(this) - } -} - - - -/** - * A git ref (tag, branch or commit). - */ -export class GitRef extends BaseClient { - private readonly _commit?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _commit?: string, - ) { - super(parent) - - this._commit = _commit - } - - /** - * The resolved commit id at this ref. - */ - async commit(): Promise { - if (this._commit) { - return this._commit - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "commit", - }, - ], - this.client - ) - - - return response - } - - /** - * The filesystem tree at this ref. - */ - tree(opts?: GitRefTreeOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "tree", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * A git repository. - */ -export class GitRepository extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * Returns details on one branch. - * @param name Branch's name (e.g., "main"). - */ - branch(name: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "branch", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns details on one commit. - * @param id Identifier of the commit (e.g., "b6315d8f2810962c601af73f86831f6866ea798b"). - */ - commit(id: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "commit", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns details on one tag. - * @param name Tag's name (e.g., "v0.3.9"). - */ - tag(name: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "tag", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * Information about the host execution environment. - */ -export class Host extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * Accesses a directory on the host. - * @param path Location of the directory to access (e.g., "."). - * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - directory(path: string, opts?: HostDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Accesses a file on the host. - * @param path Location of the file to retrieve (e.g., "README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a service that forwards traffic to a specified address via the host. - * @param ports Ports to expose via the service, forwarding through the host network. - * - * If a port's frontend is unspecified or 0, it defaults to the same as the - * backend port. - * - * An empty set of ports is not valid; an error will be returned. - * @param opts.host Upstream host to forward traffic to. - */ - service(ports: PortForward[], opts?: HostServiceOpts): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "service", - args: { ports, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets a secret given a user-defined name and the file path on the host, and returns the secret. - * The file is limited to a size of 512000 bytes. - * @param name The user defined name for this secret. - * @param path Location of the file to set as a secret. - */ - setSecretFile(name: string, path: string): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "setSecretFile", - args: { name, path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a tunnel that forwards traffic from the host to a service. - * @param service Service to send traffic from the tunnel. - * @param opts.native Map each service port to the same port on the host, as if the service were - * running natively. - * - * Note: enabling may result in port conflicts. - * @param opts.ports Configure explicit port forwarding rules for the tunnel. - * - * If a port's frontend is unspecified or 0, a random port will be chosen by - * the host. - * - * If no ports are given, all of the service's ports are forwarded. If native - * is true, each port maps to the same port on the host. If native is false, - * each port maps to a random port chosen by the host. - * - * If ports are given and native is true, the ports are additive. - */ - tunnel(service: Service, opts?: HostTunnelOpts): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "tunnel", - args: { service, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Accesses a Unix socket on the host. - * @param path Location of the Unix socket (e.g., "/var/run/docker.sock"). - */ - unixSocket(path: string): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "unixSocket", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - - - - - - - - - - -/** - * A simple key value object that represents a label. - */ -export class Label extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: string, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The label name. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The label value. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - -/** - * A definition of a list type in a Module. - */ -export class ListTypeDef extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * The type of the elements in the list - */ - elementTypeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "elementTypeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - -export class Module_ extends BaseClient { - private readonly _id?: ModuleID = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - private readonly _sdk?: string = undefined - private readonly _serve?: Void = undefined - private readonly _sourceDirectorySubPath?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ModuleID, - _description?: string, - _name?: string, - _sdk?: string, - _serve?: Void, - _sourceDirectorySubPath?: string, - ) { - super(parent) - - this._id = _id - this._description = _description - this._name = _name - this._sdk = _sdk - this._serve = _serve - this._sourceDirectorySubPath = _sourceDirectorySubPath - } - - /** - * The ID of the module - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Modules used by this module - */ - async dependencies(): Promise { - type dependencies = { - id: ModuleID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencies", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new Module_( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The dependencies as configured by the module - */ - async dependencyConfig(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencyConfig", - }, - ], - this.client - ) - - - return response - } - - /** - * The doc string of the module, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The code generated by the SDK's runtime - */ - generatedCode(): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "generatedCode", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The name of the module - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * Objects served by this module - */ - async objects(): Promise { - type objects = { - id: TypeDefID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "objects", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new TypeDef( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The SDK used by this module. Either a name of a builtin SDK or a module ref pointing to the SDK's implementation. - */ - async sdk(): Promise { - if (this._sdk) { - return this._sdk - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sdk", - }, - ], - this.client - ) - - - return response - } - - /** - * Serve a module's API in the current session. - * Note: this can only be called once per session. - * In the future, it could return a stream or service to remove the side effect. - */ - async serve(): Promise { - if (this._serve) { - return this._serve - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "serve", - }, - ], - this.client - ) - - - return response - } - - /** - * The directory containing the module's source code - */ - sourceDirectory(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "sourceDirectory", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The module's subpath within the source directory - */ - async sourceDirectorySubPath(): Promise { - if (this._sourceDirectorySubPath) { - return this._sourceDirectorySubPath - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sourceDirectorySubPath", - }, - ], - this.client - ) - - - return response - } - - /** - * This module plus the given Object type and associated functions - */ - withObject(object: TypeDef): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "withObject", - args: { object }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Module. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Module_) => Module_) { - return arg(this) - } -} - -/** - * Static configuration for a module (e.g. parsed contents of dagger.json) - */ -export class ModuleConfig extends BaseClient { - private readonly _name?: string = undefined - private readonly _root?: string = undefined - private readonly _sdk?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _root?: string, - _sdk?: string, - ) { - super(parent) - - this._name = _name - this._root = _root - this._sdk = _sdk - } - - /** - * Modules that this module depends on. - */ - async dependencies(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencies", - }, - ], - this.client - ) - - - return response - } - - /** - * Exclude these file globs when loading the module root. - */ - async exclude(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "exclude", - }, - ], - this.client - ) - - - return response - } - - /** - * Include only these file globs when loading the module root. - */ - async include(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "include", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the module. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The root directory of the module's project, which may be above the module source code. - */ - async root(): Promise { - if (this._root) { - return this._root - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "root", - }, - ], - this.client - ) - - - return response - } - - /** - * Either the name of a built-in SDK ('go', 'python', etc.) OR a module reference pointing to the SDK's module implementation. - */ - async sdk(): Promise { - if (this._sdk) { - return this._sdk - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sdk", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A definition of a custom object defined in a Module. - */ -export class ObjectTypeDef extends BaseClient { - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _name?: string, - ) { - super(parent) - - this._description = _description - this._name = _name - } - - /** - * The doc string for the object, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * Static fields defined on this object, if any - */ - async fields(): Promise { - type fields = { - description: string - name: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "fields", - }, - { - operation: "description name" - }, - ], - this.client - ) - - - return response.map( - (r) => new FieldTypeDef( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.name, - ) - ) - } - - /** - * Functions defined on this object, if any - */ - async functions(): Promise { - type functions = { - id: FunctionID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "functions", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new Function_( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The name of the object - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A port exposed by a container. - */ -export class Port extends BaseClient { - private readonly _description?: string = undefined - private readonly _port?: number = undefined - private readonly _protocol?: NetworkProtocol = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _port?: number, - _protocol?: NetworkProtocol, - ) { - super(parent) - - this._description = _description - this._port = _port - this._protocol = _protocol - } - - /** - * The port description. - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The port number. - */ - async port(): Promise { - if (this._port) { - return this._port - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "port", - }, - ], - this.client - ) - - - return response - } - - /** - * The transport layer network protocol. - */ - async protocol(): Promise { - if (this._protocol) { - return this._protocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "protocol", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class Client extends BaseClient { - private readonly _checkVersionCompatibility?: boolean = undefined - private readonly _defaultPlatform?: Platform = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _checkVersionCompatibility?: boolean, - _defaultPlatform?: Platform, - ) { - super(parent) - - this._checkVersionCompatibility = _checkVersionCompatibility - this._defaultPlatform = _defaultPlatform - } - - /** - * Constructs a cache volume for a given cache key. - * @param key A string identifier to target this cache volume (e.g., "modules-cache"). - */ - cacheVolume(key: string): CacheVolume { - return new CacheVolume({ - queryTree: [ - ...this._queryTree, - { - operation: "cacheVolume", - args: { key }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Checks if the current Dagger Engine is compatible with an SDK's required version. - * @param version The SDK's required version. - */ - async checkVersionCompatibility(version: string): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "checkVersionCompatibility", - args: { version }, - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a scratch container or loads one by ID. - * - * Optional platform argument initializes new containers to execute and publish - * as that platform. Platform defaults to that of the builder's host. - */ - container(opts?: ClientContainerOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "container", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The FunctionCall context that the SDK caller is currently executing in. - * If the caller is not currently executing in a function, this will return - * an error. - */ - currentFunctionCall(): FunctionCall { - return new FunctionCall({ - queryTree: [ - ...this._queryTree, - { - operation: "currentFunctionCall", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The module currently being served in the session, if any. - */ - currentModule(): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "currentModule", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The default platform of the builder. - */ - async defaultPlatform(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultPlatform", - }, - ], - this.client - ) - - - return response - } - - /** - * Creates an empty directory or loads one by ID. - */ - directory(opts?: ClientDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a file by ID. - * @deprecated Use loadFileFromID instead. - */ - file(id: FileID): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a function. - */ - function_(name: string, returnType: TypeDef): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "function", - args: { name, returnType }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a code generation result, given a directory containing the generated - * code. - */ - generatedCode(code: Directory): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "generatedCode", - args: { code }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Queries a git repository. - * @param url Url of the git repository. - * Can be formatted as https://{host}/{owner}/{repo}, git@{host}:{owner}/{repo} - * Suffix ".git" is optional. - * @param opts.keepGitDir Set to true to keep .git directory. - * @param opts.sshKnownHosts Set SSH known hosts - * @param opts.sshAuthSocket Set SSH auth socket - * @param opts.experimentalServiceHost A service which must be started before the repo is fetched. - */ - git(url: string, opts?: ClientGitOpts): GitRepository { - return new GitRepository({ - queryTree: [ - ...this._queryTree, - { - operation: "git", - args: { url, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Queries the host environment. - */ - host(): Host { - return new Host({ - queryTree: [ - ...this._queryTree, - { - operation: "host", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a file containing an http remote url content. - * @param url HTTP url to get the content from (e.g., "https://docs.dagger.io"). - * @param opts.experimentalServiceHost A service which must be started before the URL is fetched. - */ - http(url: string, opts?: ClientHttpOpts): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "http", - args: { url, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a CacheVolume from its ID. - */ - loadCacheVolumeFromID(id: CacheVolumeID): CacheVolume { - return new CacheVolume({ - queryTree: [ - ...this._queryTree, - { - operation: "loadCacheVolumeFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a container from an ID. - */ - loadContainerFromID(id: ContainerID): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "loadContainerFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Directory from its ID. - */ - loadDirectoryFromID(id: DirectoryID): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "loadDirectoryFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a File from its ID. - */ - loadFileFromID(id: FileID): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFileFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a function argument by ID. - */ - loadFunctionArgFromID(id: FunctionArgID): FunctionArg { - return new FunctionArg({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFunctionArgFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a function by ID. - */ - loadFunctionFromID(id: FunctionID): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFunctionFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a GeneratedCode by ID. - */ - loadGeneratedCodeFromID(id: GeneratedCodeID): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "loadGeneratedCodeFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a module by ID. - */ - loadModuleFromID(id: ModuleID): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "loadModuleFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Secret from its ID. - */ - loadSecretFromID(id: SecretID): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "loadSecretFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a service from ID. - */ - loadServiceFromID(id: ServiceID): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "loadServiceFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Socket from its ID. - */ - loadSocketFromID(id: SocketID): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "loadSocketFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a TypeDef by ID. - */ - loadTypeDefFromID(id: TypeDefID): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "loadTypeDefFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a new module. - */ - module_(): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "module", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load the static configuration for a module from the given source directory and optional subpath. - */ - moduleConfig(sourceDirectory: Directory, opts?: ClientModuleConfigOpts): ModuleConfig { - return new ModuleConfig({ - queryTree: [ - ...this._queryTree, - { - operation: "moduleConfig", - args: { sourceDirectory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a named sub-pipeline. - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: ClientPipelineOpts): Client { - return new Client({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a secret from its ID. - * @deprecated Use loadSecretFromID instead - */ - secret(id: SecretID): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "secret", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets a secret given a user defined name to its plaintext and returns the secret. - * The plaintext value is limited to a size of 128000 bytes. - * @param name The user defined name for this secret - * @param plaintext The plaintext of the secret - */ - setSecret(name: string, plaintext: string): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "setSecret", - args: { name, plaintext }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a socket by its ID. - * @deprecated Use loadSocketFromID instead. - */ - socket(opts?: ClientSocketOpts): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "socket", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a new TypeDef. - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Client. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Client) => Client) { - return arg(this) - } -} - -/** - * A reference to a secret value, which can be handled more safely than the value itself. - */ -export class Secret extends BaseClient { - private readonly _id?: SecretID = undefined - private readonly _plaintext?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: SecretID, - _plaintext?: string, - ) { - super(parent) - - this._id = _id - this._plaintext = _plaintext - } - - /** - * The identifier for this secret. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of this secret. - */ - async plaintext(): Promise { - if (this._plaintext) { - return this._plaintext - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "plaintext", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class Service extends BaseClient { - private readonly _id?: ServiceID = undefined - private readonly _endpoint?: string = undefined - private readonly _hostname?: string = undefined - private readonly _start?: ServiceID = undefined - private readonly _stop?: ServiceID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ServiceID, - _endpoint?: string, - _hostname?: string, - _start?: ServiceID, - _stop?: ServiceID, - ) { - super(parent) - - this._id = _id - this._endpoint = _endpoint - this._hostname = _hostname - this._start = _start - this._stop = _stop - } - - /** - * A unique identifier for this service. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves an endpoint that clients can use to reach this container. - * - * If no port is specified, the first exposed port is used. If none exist an error is returned. - * - * If a scheme is specified, a URL is returned. Otherwise, a host:port pair is returned. - * @param opts.port The exposed port number for the endpoint - * @param opts.scheme Return a URL with the given scheme, eg. http for http:// - */ - async endpoint(opts?: ServiceEndpointOpts): Promise { - if (this._endpoint) { - return this._endpoint - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "endpoint", - args: { ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a hostname which can be used by clients to reach this container. - */ - async hostname(): Promise { - if (this._hostname) { - return this._hostname - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "hostname", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of ports provided by the service. - */ - async ports(): Promise { - type ports = { - description: string - port: number - protocol: NetworkProtocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "ports", - }, - { - operation: "description port protocol" - }, - ], - this.client - ) - - - return response.map( - (r) => new Port( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.port, - r.protocol, - ) - ) - } - - /** - * Start the service and wait for its health checks to succeed. - * - * Services bound to a Container do not need to be manually started. - */ - async start(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "start", - }, - ], - this.client - ) - - return this - } - - /** - * Stop the service. - */ - async stop(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "stop", - }, - ], - this.client - ) - - return this - } -} - - - - -export class Socket extends BaseClient { - private readonly _id?: SocketID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: SocketID, - ) { - super(parent) - - this._id = _id - } - - /** - * The content-addressed identifier of the socket. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A definition of a parameter or return type in a Module. - */ -export class TypeDef extends BaseClient { - private readonly _id?: TypeDefID = undefined - private readonly _kind?: TypeDefKind = undefined - private readonly _optional?: boolean = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: TypeDefID, - _kind?: TypeDefKind, - _optional?: boolean, - ) { - super(parent) - - this._id = _id - this._kind = _kind - this._optional = _optional - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * If kind is LIST, the list-specific type definition. - * If kind is not LIST, this will be null. - */ - asList(): ListTypeDef { - return new ListTypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "asList", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * If kind is OBJECT, the object-specific type definition. - * If kind is not OBJECT, this will be null. - */ - asObject(): ObjectTypeDef { - return new ObjectTypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "asObject", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The kind of type this is (e.g. primitive, list, object) - */ - async kind(): Promise { - if (this._kind) { - return this._kind - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "kind", - }, - ], - this.client - ) - - - return response - } - - /** - * Whether this type can be set to null. Defaults to false. - */ - async optional(): Promise { - if (this._optional) { - return this._optional - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "optional", - }, - ], - this.client - ) - - - return response - } - - /** - * Adds a static field for an Object TypeDef, failing if the type is not an object. - * @param name The name of the field in the object - * @param typeDef The type of the field - * @param opts.description A doc string for the field, if any - */ - withField(name: string, typeDef: TypeDef, opts?: TypeDefWithFieldOpts): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withField", - args: { name, typeDef, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Adds a function for an Object TypeDef, failing if the type is not an object. - */ - withFunction(function_: Function_): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withFunction", - args: { function_ }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets the kind of the type. - */ - withKind(kind: TypeDefKind): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withKind", - args: { kind }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a TypeDef of kind List with the provided type for its elements. - */ - withListOf(elementType: TypeDef): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withListOf", - args: { elementType }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a TypeDef of kind Object with the provided name. - * - * Note that an object's fields and functions may be omitted if the intent is - * only to refer to an object. This is how functions are able to return their - * own object, or any other circular reference. - */ - withObject(name: string, opts?: TypeDefWithObjectOpts): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withObject", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets whether this type can be set to null. - */ - withOptional(optional: boolean): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withOptional", - args: { optional }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current TypeDef. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: TypeDef) => TypeDef) { - return arg(this) - } -} - - - - - - - diff --git a/.fluentci/example/.fluentci/sdk/connect.ts b/.fluentci/example/.fluentci/sdk/connect.ts deleted file mode 100644 index 1618683..0000000 --- a/.fluentci/example/.fluentci/sdk/connect.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Writable } from "node:stream"; - -import { Client } from "./client.gen.ts"; - -/** - * ConnectOpts defines option used to connect to an engine. - */ -export interface ConnectOpts { - /** - * Use to overwrite Dagger workdir - * @defaultValue process.cwd() - */ - Workdir?: string; - /** - * Enable logs output - * @example - * LogOutput - * ```ts - * connect(async (client: Client) => { - const source = await client.host().workdir().id() - ... - }, {LogOutput: process.stdout}) - ``` - */ - LogOutput?: Writable; -} - -export type CallbackFct = (client: Client) => Promise; - -export interface ConnectParams { - port: number; - session_token: string; -} - -/** - * connect runs GraphQL server and initializes a - * GraphQL client to execute query on it through its callback. - * This implementation is based on the existing Go SDK. - */ -export async function connect( - cb: CallbackFct, - config: ConnectOpts = {} -): Promise { - let client: Client; - - // Prefer DAGGER_SESSION_PORT if set - const daggerSessionPort = Deno.env.get("DAGGER_SESSION_PORT"); - if (daggerSessionPort) { - const sessionToken = Deno.env.get("DAGGER_SESSION_TOKEN"); - if (!sessionToken) { - throw new Error( - "DAGGER_SESSION_TOKEN must be set when using DAGGER_SESSION_PORT" - ); - } - - if (config.Workdir && config.Workdir !== "") { - throw new Error( - "cannot configure workdir for existing session (please use --workdir or host.directory with absolute paths instead)" - ); - } - - client = new Client({ - host: `127.0.0.1:${daggerSessionPort}`, - sessionToken: sessionToken, - }); - } else { - throw new Error("DAGGER_SESSION_PORT must be set"); - } - - await cb(client); -} diff --git a/.fluentci/example/.fluentci/sdk/nix/example.ts b/.fluentci/example/.fluentci/sdk/nix/example.ts deleted file mode 100644 index d30ebd5..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/example.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withNix } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withNix( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/example/.fluentci/sdk/nix/example_with_devbox.ts b/.fluentci/example/.fluentci/sdk/nix/example_with_devbox.ts deleted file mode 100644 index 60174e9..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/example_with_devbox.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevbox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevbox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl", "bash"]) - ) - .withExec(["devbox", "global", "add", "gh"]) - .withExec(["sh", "-c", 'eval "$(devbox global shellenv)" && gh version']); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/example/.fluentci/sdk/nix/example_with_devbox_pkg.ts b/.fluentci/example/.fluentci/sdk/nix/example_with_devbox_pkg.ts deleted file mode 100644 index 1728d3e..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/example_with_devbox_pkg.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevboxExec, withPackageFromDevbox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevboxExec( - withPackageFromDevbox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl", "bash"]), - ["gh"] - ), - ["gh version"] - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/example/.fluentci/sdk/nix/example_with_devenv.ts b/.fluentci/example/.fluentci/sdk/nix/example_with_devenv.ts deleted file mode 100644 index c3c4341..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/example_with_devenv.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevenv } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevenv( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/example/.fluentci/sdk/nix/example_with_flox.ts b/.fluentci/example/.fluentci/sdk/nix/example_with_flox.ts deleted file mode 100644 index 9eb9859..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/example_with_flox.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withFlox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withFlox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/example/.fluentci/sdk/nix/index.ts b/.fluentci/example/.fluentci/sdk/nix/index.ts deleted file mode 100644 index 4c1d2db..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { - withDevbox, - withDevboxExec, - withDevenv, - withFlox, - withNix, - withPackageFromDevbox, -} from "./steps.ts"; - -export { - withDevbox, - withDevboxExec, - withDevenv, - withFlox, - withNix, - withPackageFromDevbox, -}; diff --git a/.fluentci/example/.fluentci/sdk/nix/steps.ts b/.fluentci/example/.fluentci/sdk/nix/steps.ts deleted file mode 100644 index f1b1f0e..0000000 --- a/.fluentci/example/.fluentci/sdk/nix/steps.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Container } from "../client.gen.ts"; - -export const withNix = (ctr: Container) => - ctr - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/group ] && cp /etc/nix/group /etc/group; exit 0", - ]) - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/passwd ] && cp /etc/nix/passwd /etc/passwd; exit 0", - ]) - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/shadow ] && cp /etc/nix/shadow /etc/shadow; exit 0", - ]) - .withExec([ - "sh", - "-c", - '[ ! -f "/nix/receipt.json" ] && curl --proto =https --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --extra-conf "sandbox = false" --init none --no-confirm; exit 0', - ]) - .withExec(["cp", "/etc/group", "/etc/nix/group"]) - .withExec(["cp", "/etc/passwd", "/etc/nix/passwd"]) - .withExec(["cp", "/etc/shadow", "/etc/nix/shadow"]) - .withExec([ - "sed", - "-i", - "s/auto-allocate-uids = true/auto-allocate-uids = false/g", - "/etc/nix/nix.conf", - ]) - .withEnvVariable("PATH", "${PATH}:/nix/var/nix/profiles/default/bin", { - expand: true, - }) - .withExec(["nix", "run", "nixpkgs#hello"]); - -export const withDevbox = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "devbox"]) - .withExec(["addgroup", "devbox", "nixbld"]) - .withEnvVariable("FORCE", "1") - .withExec(["sh", "-c", "curl -fsSL https://get.jetpack.io/devbox | bash"]) - .withExec(["devbox", "version"]); - -export const withPackageFromDevbox = (ctr: Container, pkgs: string[]) => - withDevbox(ctr).withExec(["devbox", "global", "add", ...pkgs]); - -export const withDevboxExec = (ctr: Container, cmds: string[]) => - cmds.reduce( - (ctr, cmd) => - ctr.withExec(["sh", "-c", `eval "$(devbox global shellenv)" && ${cmd}`]), - ctr - ); - -export const withDevenv = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "devenv"]) - .withExec(["addgroup", "devenv", "nixbld"]) - .withEnvVariable("USER", "root") - .withExec([ - "sh", - "-c", - 'echo "trusted-users = root $USER" | tee -a /etc/nix/nix.conf', - ]) - .withExec([ - "nix", - "profile", - "install", - "--accept-flake-config", - "github:cachix/cachix", - ]) - .withExec(["cachix", "use", "devenv"]) - .withExec([ - "nix", - "profile", - "install", - "--accept-flake-config", - "github:cachix/devenv/latest", - ]) - .withExec(["devenv", "version"]); - -export const withFlox = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "flox"]) - .withExec(["addgroup", "flox", "nixbld"]) - .withExec([ - "sh", - "-c", - "echo 'extra-trusted-substituters = https://cache.floxdev.com' | tee -a /etc/nix/nix.conf && echo 'extra-trusted-public-keys = flox-store-public-0:8c/B+kjIaQ+BloCmNkRUKwaVPFWkriSAd0JJvuDu4F0=' | tee -a /etc/nix/nix.conf", - ]) - .withExec([ - "nix", - "profile", - "install", - "--impure", - "--experimental-features", - "nix-command flakes auto-allocate-uids", - "--accept-flake-config", - "github:flox/floxpkgs#flox.fromCatalog", - ]) - .withExec(["flox", "--version"]); diff --git a/.fluentci/example/.fluentci/sdk/utils.ts b/.fluentci/example/.fluentci/sdk/utils.ts deleted file mode 100644 index 075e278..0000000 --- a/.fluentci/example/.fluentci/sdk/utils.ts +++ /dev/null @@ -1,251 +0,0 @@ -// deno-lint-ignore-file no-explicit-any -import { - ClientError, - gql, - GraphQLClient, - GraphQLRequestError, - TooManyNestedObjectsError, - UnknownDaggerError, - NotAwaitedRequestError, - ExecError, -} from "../deps.ts"; - -import { Metadata, QueryTree } from "./client.gen.ts"; - -/** - * Format argument into GraphQL query format. - */ -function buildArgs(args: any): string { - const metadata: Metadata = args.__metadata || {}; - - // Remove unwanted quotes - const formatValue = (key: string, value: string) => { - // Special treatment for enumeration, they must be inserted without quotes - if (metadata[key]?.is_enum) { - return JSON.stringify(value).replace(/['"]+/g, ""); - } - - return JSON.stringify(value).replace( - /\{"[a-zA-Z]+":|,"[a-zA-Z]+":/gi, - (str) => { - return str.replace(/"/g, ""); - } - ); - }; - - if (args === undefined || args === null) { - return ""; - } - - const formattedArgs = Object.entries(args).reduce( - (acc: any, [key, value]) => { - // Ignore internal metadata key - if (key === "__metadata") { - return acc; - } - - if (value !== undefined && value !== null) { - acc.push(`${key}: ${formatValue(key, value as string)}`); - } - - return acc; - }, - [] - ); - - if (formattedArgs.length === 0) { - return ""; - } - - return `(${formattedArgs})`; -} - -/** - * Find QueryTree, convert them into GraphQl query - * then compute and return the result to the appropriate field - */ -async function computeNestedQuery( - query: QueryTree[], - client: GraphQLClient -): Promise { - // Check if there is a nested queryTree to be executed - const isQueryTree = (value: any) => value["_queryTree"] !== undefined; - - // Check if there is a nested array of queryTree to be executed - const isArrayQueryTree = (value: any[]) => - value.every((v) => v instanceof Object && isQueryTree(v)); - - // Prepare query tree for final query by computing nested queries - // and building it with their results. - const computeQueryTree = async (value: any): Promise => { - // Resolve sub queries if operation's args is a subquery - for (const op of value["_queryTree"]) { - await computeNestedQuery([op], client); - } - - // push an id that will be used by the container - return buildQuery([ - ...value["_queryTree"], - { - operation: "id", - }, - ]); - }; - - // Remove all undefined args and assert args type - const queryToExec = query.filter((q): q is Required => !!q.args); - - for (const q of queryToExec) { - await Promise.all( - // Compute nested query for single object - Object.entries(q.args).map(async ([key, value]: any) => { - if (value instanceof Object && isQueryTree(value)) { - // push an id that will be used by the container - const getQueryTree = await computeQueryTree(value); - - q.args[key] = await compute(getQueryTree, client); - } - - // Compute nested query for array of object - if (Array.isArray(value) && isArrayQueryTree(value)) { - const tmp: any = q.args[key]; - - for (let i = 0; i < value.length; i++) { - // push an id that will be used by the container - const getQueryTree = await computeQueryTree(value[i]); - - tmp[i] = await compute(getQueryTree, client); - } - - q.args[key] = tmp; - } - }) - ); - } -} - -/** - * Convert the queryTree into a GraphQL query - * @param q - * @returns - */ -export function buildQuery(q: QueryTree[]): string { - const query = q.reduce((acc, { operation, args }, i) => { - const qLen = q.length; - - acc += ` ${operation} ${args ? `${buildArgs(args)}` : ""} ${ - qLen - 1 !== i ? "{" : "}".repeat(qLen - 1) - }`; - - return acc; - }, ""); - - return `{${query - .replaceAll('"StringKind"', "StringKind") - .replaceAll('"VoidKind"', "VoidKind") - .replaceAll('"IntegerKind"', "IntegerKind") - .replaceAll('"BooleanKind"', "BooleanKind") - .replaceAll('"ObjectKind"', "ObjectKind") - .replaceAll('"ListKind"', "ListKind") - .replaceAll("function_", "function")} }`; -} - -/** - * Convert querytree into a Graphql query then compute it - * @param q | QueryTree[] - * @param client | GraphQLClient - * @returns - */ -export async function computeQuery( - q: QueryTree[], - client: GraphQLClient -): Promise { - await computeNestedQuery(q, client); - - const query = buildQuery(q); - - return await compute(query, client); -} - -/** - * Return a Graphql query result flattened - * @param response any - * @returns - */ -export function queryFlatten(response: any): T { - // Recursion break condition - // If our response is not an object or an array we assume we reached the value - if (!(response instanceof Object) || Array.isArray(response)) { - return response; - } - - const keys = Object.keys(response); - - if (keys.length != 1) { - // Dagger is currently expecting to only return one value - // If the response is nested in a way were more than one object is nested inside throw an error - throw new TooManyNestedObjectsError( - "Too many nested objects inside graphql response", - { response: response } - ); - } - - const nestedKey = keys[0]; - - return queryFlatten(response[nestedKey]); -} - -/** - * Send a GraphQL document to the server - * return a flatten result - * @hidden - */ -export async function compute( - query: string, - client: GraphQLClient -): Promise { - let computeQuery: Awaited; - try { - computeQuery = await client.request( - gql` - ${query} - ` - ); - } catch (e: any) { - if (e instanceof ClientError) { - const msg = e.response.errors?.[0]?.message ?? `API Error`; - const ext = e.response.errors?.[0]?.extensions; - - if (ext?._type === "EXEC_ERROR") { - throw new ExecError(msg, { - cmd: (ext.cmd as string[]) ?? [], - exitCode: (ext.exitCode as number) ?? -1, - stdout: (ext.stdout as string) ?? "", - stderr: (ext.stderr as string) ?? "", - }); - } - - throw new GraphQLRequestError(msg, { - request: e.request, - response: e.response, - cause: e, - }); - } - - // Looking for connection error in case the function has not been awaited. - if (e.errno === "ECONNREFUSED") { - throw new NotAwaitedRequestError( - "Encountered an error while requesting data via graphql through a synchronous call. Make sure the function called is awaited.", - { cause: e } - ); - } - - // Just throw the unknown error - throw new UnknownDaggerError( - "Encountered an unknown error while requesting data via graphql", - { cause: e } - ); - } - - return queryFlatten(computeQuery); -} diff --git a/.fluentci/example/.fluentci/src/aws/README.md b/.fluentci/example/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/example/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/src/aws/config.ts b/.fluentci/example/.fluentci/src/aws/config.ts deleted file mode 100644 index 879c50e..0000000 --- a/.fluentci/example/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/example/.fluentci/src/aws/config_test.ts b/.fluentci/example/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/example/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/src/aws/init.ts b/.fluentci/example/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/example/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/example/.fluentci/src/azure/README.md b/.fluentci/example/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/example/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/src/azure/config.ts b/.fluentci/example/.fluentci/src/azure/config.ts deleted file mode 100644 index 71b39a0..0000000 --- a/.fluentci/example/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/example/.fluentci/src/azure/config_test.ts b/.fluentci/example/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/example/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/src/azure/init.ts b/.fluentci/example/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/example/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/example/.fluentci/src/circleci/README.md b/.fluentci/example/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/example/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/src/circleci/config.ts b/.fluentci/example/.fluentci/src/circleci/config.ts deleted file mode 100644 index acb64fa..0000000 --- a/.fluentci/example/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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 -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/example/.fluentci/src/circleci/config_test.ts b/.fluentci/example/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/example/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/src/circleci/init.ts b/.fluentci/example/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/example/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/example/.fluentci/src/dagger/index.ts b/.fluentci/example/.fluentci/src/dagger/index.ts deleted file mode 100644 index c2508d8..0000000 --- a/.fluentci/example/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { - fmt, - lint, - test, - deploy, - compile, - exclude, - jobDescriptions, -} from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude, jobDescriptions }; diff --git a/.fluentci/example/.fluentci/src/dagger/jobs.ts b/.fluentci/example/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 912f02a..0000000 --- a/.fluentci/example/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,327 +0,0 @@ -import Client, { Directory, Secret, File } from "../../deps.ts"; -import { connect } from "../../sdk/connect.ts"; -import { existsSync } from "node:fs"; -import { getDirectory, getDenoDeployToken } from "./lib.ts"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - return client - .pipeline(pipeline) - .container() - .from("denoland/deno:alpine") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "perl-utils"]); -}; - -/** - * @function - * @description Lint your code - * @param {string | Directory} src - * @returns {string} - */ -export async function lint( - src: string | Directory | undefined = "." -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - console.log(result); - - id = await ctr.directory("/app").id(); - }); - return id; -} - -/** - * @function - * @description Format your code - * @param {string | Directory} src - * @returns {string} - */ -export async function fmt( - src: string | Directory | undefined = "." -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - console.log(result); - id = await ctr.directory("/app").id(); - }); - - return id; -} - -/** - * @function - * @description Run your tests - * @param {string | Directory} src - * @param {string[]} ignore - * @returns {string} - */ -export async function test( - src: string | Directory | undefined = ".", - ignore: string[] = [] -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (ignore.length > 0) { - command = command.concat([`--ignore=${ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - const cov = await ctr.file("/app/coverage.lcov"); - cov.export("./coverage.lcov"); - id = await cov.id(); - - const result = await ctr.stdout(); - console.log(result); - }); - return id; -} - -/** - * @function - * @description Compile your code - * @param {string | Directory} src - * @param {string} file - * @param {string} output - * @param {string} target - * @returns {string} - */ -export async function compile( - src: string | Directory | undefined = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - Deno.env.get("TARGET") || target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withMountedCache("/assets", client.cacheVolume("gh-release-assets")) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]) - .withExec([ - "tar", - "czvf", - `/assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz`, - output, - ]) - .withExec([ - "sh", - "-c", - `shasum -a 256 /assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz > /assets/${output}_${ - Deno.env.get("TAG") || "" - }_${Deno.env.get("TARGET" || target)}.tar.gz.sha256`, - ]); - - const exe = await ctr.file(`/app/${output}`); - exe.export(`./${output}`); - - await ctr.stdout(); - id = await exe.id(); - }); - - return id; -} - -/** - * @function - * @description Deploy your code to Deno Deploy - * @param {string | Directory} src - * @param {string | Secret} token - * @param {string} project - * @param {string} main - * @param {boolean} noStatic - * @param {string} excludeOpt - * @returns {string} - */ -export async function deploy( - src: string | Directory | undefined = ".", - token?: string | Secret, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -): Promise { - let result = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - const secret = getDenoDeployToken(client, token); - - if (!secret) { - console.error("DENO_DEPLOY_TOKEN environment variable is not set"); - Deno.exit(1); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withSecretVariable("DENO_DEPLOY_TOKEN", secret) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -} - -export type JobExec = - | ((src: string | Directory | undefined) => Promise) - | (( - src: string | Directory | undefined, - ignore?: string[] - ) => Promise) - | (( - src: string | Directory | undefined, - file?: string, - output?: string, - target?: string - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/example/.fluentci/src/dagger/lib.ts b/.fluentci/example/.fluentci/src/dagger/lib.ts deleted file mode 100644 index 21c4bf8..0000000 --- a/.fluentci/example/.fluentci/src/dagger/lib.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Client, { - Directory, - DirectoryID, - Secret, - SecretID, -} from "../../deps.ts"; - -export const getDirectory = ( - client: Client, - src: string | Directory | undefined = "." -) => { - if (typeof src === "string" && src.startsWith("core.Directory")) { - return client.directory({ - id: src as DirectoryID, - }); - } - return src instanceof Directory ? src : client.host().directory(src); -}; - -export const getDenoDeployToken = (client: Client, token?: string | Secret) => { - if (Deno.env.get("DENO_DEPLOY_TOKEN")) { - return client.setSecret( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN")! - ); - } - if (token && typeof token === "string") { - if (token.startsWith("core.Secret")) { - return client.loadSecretFromID(token as SecretID); - } - return client.setSecret("DENO_DEPLOY_TOKEN", token); - } - if (token && token instanceof Secret) { - return token; - } - return undefined; -}; diff --git a/.fluentci/example/.fluentci/src/dagger/list_jobs.ts b/.fluentci/example/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/example/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/example/.fluentci/src/dagger/pipeline.ts b/.fluentci/example/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 5956b46..0000000 --- a/.fluentci/example/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job("."); - } -} diff --git a/.fluentci/example/.fluentci/src/dagger/runner.ts b/.fluentci/example/.fluentci/src/dagger/runner.ts deleted file mode 100644 index 59f82f5..0000000 --- a/.fluentci/example/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,17 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { parse, camelCase, snakeCase } from "../../deps.ts"; - -const args = parse(Deno.args.map((x) => x.split(" ")).flat()); - -if (!Array.isArray(Deno.args)) { - for (const param of Object.keys(args) - .filter((x) => x !== "_") - .map((x) => snakeCase(x).toUpperCase())) { - Deno.env.set(param, args[camelCase(param)]); - } -} - -await pipeline( - ".", - Array.isArray(Deno.args) ? Deno.args : (args._ as string[]) -); diff --git a/.fluentci/example/.fluentci/src/github/README.md b/.fluentci/example/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/example/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/src/github/config.ts b/.fluentci/example/.fluentci/src/github/config.ts deleted file mode 100644 index 017540c..0000000 --- a/.fluentci/example/.fluentci/src/github/config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - name: "Setup Fluent CI", - uses: "fluentci-io/setup-fluentci@v2", - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/example/.fluentci/src/github/config_test.ts b/.fluentci/example/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/example/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/src/github/init.ts b/.fluentci/example/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/example/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/example/.fluentci/src/gitlab/README.md b/.fluentci/example/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/example/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/example/.fluentci/src/gitlab/config.ts b/.fluentci/example/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 5124081..0000000 --- a/.fluentci/example/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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 - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/example/.fluentci/src/gitlab/config_test.ts b/.fluentci/example/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/example/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/example/.fluentci/src/gitlab/init.ts b/.fluentci/example/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/example/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.fluentci/example/.vscode/settings.json b/.fluentci/example/.vscode/settings.json deleted file mode 100644 index cbac569..0000000 --- a/.fluentci/example/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "deno.enable": true -} diff --git a/.fluentci/example/README.md b/.fluentci/example/README.md deleted file mode 100644 index 17462ab..0000000 --- a/.fluentci/example/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Deno Pipeline Example - -This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). - -## ๐Ÿš€ Usage - -You need to set the following environment variables: - -- `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. -- `DENO_PROJECT`: Your project name. - -Then, run the following command: - -```bash -fluentci run . fmt lint deploy -``` \ No newline at end of file diff --git a/.fluentci/example/compile.gql b/.fluentci/example/compile.gql deleted file mode 100644 index c78a66b..0000000 --- a/.fluentci/example/compile.gql +++ /dev/null @@ -1,11 +0,0 @@ -{ - denoExample { - compile( - file: "main.ts" - output: "hello" - target: "x86_64-unknown-linux-gnu" - ) { - id - } - } -} diff --git a/.fluentci/example/dagger.json b/.fluentci/example/dagger.json deleted file mode 100644 index 699df98..0000000 --- a/.fluentci/example/dagger.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "deno-example", - "sdk": "github.com/fluentci-io/daggerverse/deno-sdk@main" -} \ No newline at end of file diff --git a/.fluentci/example/deno.json b/.fluentci/example/deno.json deleted file mode 100644 index 2cb9b58..0000000 --- a/.fluentci/example/deno.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "fmt": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "lint": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - }, - "test": { - "exclude": [ - "example/", - ".fluentci/", - "gen/" - ] - } -} \ No newline at end of file diff --git a/.fluentci/example/deno.lock b/.fluentci/example/deno.lock deleted file mode 100644 index d26697a..0000000 --- a/.fluentci/example/deno.lock +++ /dev/null @@ -1,37 +0,0 @@ -{ - "version": "3", - "remote": { - "https://deno.land/std@0.204.0/assert/_constants.ts": "8a9da298c26750b28b326b297316cdde860bc237533b07e1337c021379e6b2a9", - "https://deno.land/std@0.204.0/assert/_diff.ts": "58e1461cc61d8eb1eacbf2a010932bf6a05b79344b02ca38095f9b805795dc48", - "https://deno.land/std@0.204.0/assert/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", - "https://deno.land/std@0.204.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", - "https://deno.land/std@0.204.0/assert/assert_almost_equals.ts": "e15ca1f34d0d5e0afae63b3f5d975cbd18335a132e42b0c747d282f62ad2cd6c", - "https://deno.land/std@0.204.0/assert/assert_array_includes.ts": "6856d7f2c3544bc6e62fb4646dfefa3d1df5ff14744d1bca19f0cbaf3b0d66c9", - "https://deno.land/std@0.204.0/assert/assert_equals.ts": "d8ec8a22447fbaf2fc9d7c3ed2e66790fdb74beae3e482855d75782218d68227", - "https://deno.land/std@0.204.0/assert/assert_exists.ts": "407cb6b9fb23a835cd8d5ad804e2e2edbbbf3870e322d53f79e1c7a512e2efd7", - "https://deno.land/std@0.204.0/assert/assert_false.ts": "0ccbcaae910f52c857192ff16ea08bda40fdc79de80846c206bfc061e8c851c6", - "https://deno.land/std@0.204.0/assert/assert_greater.ts": "ae2158a2d19313bf675bf7251d31c6dc52973edb12ac64ac8fc7064152af3e63", - "https://deno.land/std@0.204.0/assert/assert_greater_or_equal.ts": "1439da5ebbe20855446cac50097ac78b9742abe8e9a43e7de1ce1426d556e89c", - "https://deno.land/std@0.204.0/assert/assert_instance_of.ts": "3aedb3d8186e120812d2b3a5dea66a6e42bf8c57a8bd927645770bd21eea554c", - "https://deno.land/std@0.204.0/assert/assert_is_error.ts": "c21113094a51a296ffaf036767d616a78a2ae5f9f7bbd464cd0197476498b94b", - "https://deno.land/std@0.204.0/assert/assert_less.ts": "aec695db57db42ec3e2b62e97e1e93db0063f5a6ec133326cc290ff4b71b47e4", - "https://deno.land/std@0.204.0/assert/assert_less_or_equal.ts": "5fa8b6a3ffa20fd0a05032fe7257bf985d207b85685fdbcd23651b70f928c848", - "https://deno.land/std@0.204.0/assert/assert_match.ts": "c4083f80600bc190309903c95e397a7c9257ff8b5ae5c7ef91e834704e672e9b", - "https://deno.land/std@0.204.0/assert/assert_not_equals.ts": "9f1acab95bd1f5fc9a1b17b8027d894509a745d91bac1718fdab51dc76831754", - "https://deno.land/std@0.204.0/assert/assert_not_instance_of.ts": "0c14d3dfd9ab7a5276ed8ed0b18c703d79a3d106102077ec437bfe7ed912bd22", - "https://deno.land/std@0.204.0/assert/assert_not_match.ts": "3796a5b0c57a1ce6c1c57883dd4286be13a26f715ea662318ab43a8491a13ab0", - "https://deno.land/std@0.204.0/assert/assert_not_strict_equals.ts": "ca6c6d645e95fbc873d25320efeb8c4c6089a9a5e09f92d7c1c4b6e935c2a6ad", - "https://deno.land/std@0.204.0/assert/assert_object_match.ts": "d8fc2867cfd92eeacf9cea621e10336b666de1874a6767b5ec48988838370b54", - "https://deno.land/std@0.204.0/assert/assert_rejects.ts": "45c59724de2701e3b1f67c391d6c71c392363635aad3f68a1b3408f9efca0057", - "https://deno.land/std@0.204.0/assert/assert_strict_equals.ts": "b1f538a7ea5f8348aeca261d4f9ca603127c665e0f2bbfeb91fa272787c87265", - "https://deno.land/std@0.204.0/assert/assert_string_includes.ts": "b821d39ebf5cb0200a348863c86d8c4c4b398e02012ce74ad15666fc4b631b0c", - "https://deno.land/std@0.204.0/assert/assert_throws.ts": "63784e951475cb7bdfd59878cd25a0931e18f6dc32a6077c454b2cd94f4f4bcd", - "https://deno.land/std@0.204.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", - "https://deno.land/std@0.204.0/assert/equal.ts": "9f1a46d5993966d2596c44e5858eec821859b45f783a5ee2f7a695dfc12d8ece", - "https://deno.land/std@0.204.0/assert/fail.ts": "c36353d7ae6e1f7933d45f8ea51e358c8c4b67d7e7502028598fe1fea062e278", - "https://deno.land/std@0.204.0/assert/mod.ts": "37c49a26aae2b254bbe25723434dc28cd7532e444cf0b481a97c045d110ec085", - "https://deno.land/std@0.204.0/assert/unimplemented.ts": "d56fbeecb1f108331a380f72e3e010a1f161baa6956fd0f7cf3e095ae1a4c75a", - "https://deno.land/std@0.204.0/assert/unreachable.ts": "4600dc0baf7d9c15a7f7d234f00c23bca8f3eba8b140286aaca7aa998cf9a536", - "https://deno.land/std@0.204.0/fmt/colors.ts": "c51c4642678eb690dcf5ffee5918b675bf01a33fba82acf303701ae1a4f8c8d9" - } -} diff --git a/.fluentci/example/fmt.gql b/.fluentci/example/fmt.gql deleted file mode 100644 index d034385..0000000 --- a/.fluentci/example/fmt.gql +++ /dev/null @@ -1,7 +0,0 @@ -{ - denoExample { - fmt { - id - } - } -} diff --git a/.fluentci/example/lint.gql b/.fluentci/example/lint.gql deleted file mode 100644 index 26fc0d9..0000000 --- a/.fluentci/example/lint.gql +++ /dev/null @@ -1,7 +0,0 @@ -{ - denoExample { - lint { - id - } - } -} diff --git a/.fluentci/example/main.ts b/.fluentci/example/main.ts deleted file mode 100644 index a8141d3..0000000 --- a/.fluentci/example/main.ts +++ /dev/null @@ -1 +0,0 @@ -console.log("Hello, world!"); diff --git a/.fluentci/example/main.tsx b/.fluentci/example/main.tsx deleted file mode 100644 index dd48266..0000000 --- a/.fluentci/example/main.tsx +++ /dev/null @@ -1,20 +0,0 @@ -/** @jsx h */ -import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; -import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; - -const handler = (req: Request) => - html({ - title: "Hello World!", - styles: [ - "html, body { margin: 0; height: 100%; }", - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", - ], - body: ( - - -

Hello Patricia!

- - ), - }); - -serve(handler); diff --git a/.fluentci/example/test.ts b/.fluentci/example/test.ts deleted file mode 100644 index df950f3..0000000 --- a/.fluentci/example/test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "https://deno.land/std@0.204.0/assert/mod.ts"; - -function add(x: number, y: number) { - return x + y; -} - -Deno.test(function addTest() { - assertEquals(add(2, 3), 5); -}); diff --git a/.fluentci/fixtures/.gitlab-ci.yml b/.fluentci/fixtures/.gitlab-ci.yml deleted file mode 100644 index 0b6b6c1..0000000 --- a/.fluentci/fixtures/.gitlab-ci.yml +++ /dev/null @@ -1,28 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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 - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - diff --git a/.fluentci/fixtures/azure-pipelines.yml b/.fluentci/fixtures/azure-pipelines.yml deleted file mode 100644 index ea2e232..0000000 --- a/.fluentci/fixtures/azure-pipelines.yml +++ /dev/null @@ -1,22 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines diff --git a/.fluentci/fixtures/buildspec.yml b/.fluentci/fixtures/buildspec.yml deleted file mode 100644 index 640fb2d..0000000 --- a/.fluentci/fixtures/buildspec.yml +++ /dev/null @@ -1,19 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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 - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` diff --git a/.fluentci/fixtures/config.yml b/.fluentci/fixtures/config.yml deleted file mode 100644 index bc81c99..0000000 --- a/.fluentci/fixtures/config.yml +++ /dev/null @@ -1,26 +0,0 @@ -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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 - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Run Dagger Pipelines - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests diff --git a/.fluentci/fixtures/workflow.yml b/.fluentci/fixtures/workflow.yml deleted file mode 100644 index ebc92ad..0000000 --- a/.fluentci/fixtures/workflow.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@v2 - - 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/.fluentci/flake.lock b/.fluentci/flake.lock deleted file mode 100644 index af7453c..0000000 --- a/.fluentci/flake.lock +++ /dev/null @@ -1,61 +0,0 @@ -{ - "nodes": { - "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1687709756, - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "nixpkgs": { - "locked": { - "lastModified": 1688910226, - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", - "owner": "nixos", - "repo": "nixpkgs", - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", - "type": "github" - }, - "original": { - "owner": "nixos", - "ref": "release-23.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "root": { - "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" - } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - } - }, - "root": "root", - "version": 7 -} diff --git a/.fluentci/flake.nix b/.fluentci/flake.nix deleted file mode 100644 index b13ea7d..0000000 --- a/.fluentci/flake.nix +++ /dev/null @@ -1,26 +0,0 @@ -{ - description = "A Nix-flake-based Deno development environment"; - - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; - flake-utils.url = "github:numtide/flake-utils"; - }; - - outputs = { - self, - nixpkgs, - flake-utils, - }: - flake-utils.lib.eachDefaultSystem - (system: let - pkgs = import nixpkgs { - inherit system; - }; - in { - devShells.default = pkgs.mkShell { - buildInputs = [ - pkgs.deno - ]; - }; - }); -} \ No newline at end of file diff --git a/.fluentci/import_map.json b/.fluentci/import_map.json deleted file mode 100644 index 88815c1..0000000 --- a/.fluentci/import_map.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "imports": { - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", - "url": "node:url", - "readline": "node:readline", - "process": "node:process", - "path": "node:path", - "os": "node:os", - "fs": "node:fs", - "crypto": "node:crypto" - }, - "scopes": { - "https://esm.sh/v128/": { - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", - "execa": "https://esm.sh/v128/execa@7.1.1", - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", - "graphql": "https://esm.sh/v128/graphql@16.7.1", - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", - "tar": "https://esm.sh/v128/tar@6.1.15" - } - } -} \ No newline at end of file diff --git a/.fluentci/mod.ts b/.fluentci/mod.ts deleted file mode 100644 index fbc1f17..0000000 --- a/.fluentci/mod.ts +++ /dev/null @@ -1 +0,0 @@ -export * from "./src/dagger/index.ts"; diff --git a/.fluentci/sdk/client.gen.ts b/.fluentci/sdk/client.gen.ts deleted file mode 100644 index d18ad57..0000000 --- a/.fluentci/sdk/client.gen.ts +++ /dev/null @@ -1,5993 +0,0 @@ -/** - * This file was auto-generated by `client-gen`. - * Do not make direct changes to the file. - */ -import { GraphQLClient } from "../deps.ts" - -import { computeQuery } from "./utils.ts" - -/** - * @hidden - */ -export type QueryTree = { - operation: string - args?: Record -} - -/** - * @hidden - */ -export type Metadata = { - [key: string]: { - is_enum?: boolean - } -} - -interface ClientConfig { - queryTree?: QueryTree[] - host?: string - sessionToken?: string -} - -class BaseClient { - protected _queryTree: QueryTree[] - protected client: GraphQLClient - /** - * @defaultValue `127.0.0.1:8080` - */ - public clientHost: string - public sessionToken: string - - /** - * @hidden - */ - constructor({ queryTree, host, sessionToken }: ClientConfig = {}) { - this._queryTree = queryTree || [] - this.clientHost = host || "127.0.0.1:8080" - this.sessionToken = sessionToken || "" - this.client = new GraphQLClient(`http://${host}/query`, { - headers: { - Authorization: - "Basic " + btoa(sessionToken + ":"), - }, - }) - } - - /** - * @hidden - */ - get queryTree() { - return this._queryTree - } -} - -export type BuildArg = { - /** - * The build argument name. - */ - name: string - - /** - * The build argument value. - */ - value: string -} - -/** - * Sharing mode of the cache volume. - */ -export enum CacheSharingMode { - - /** - * Shares the cache volume amongst many build pipelines, - * but will serialize the writes - */ - Locked = "LOCKED", - - /** - * Keeps a cache volume for a single build pipeline - */ - Private = "PRIVATE", - - /** - * Shares the cache volume amongst many build pipelines - */ - Shared = "SHARED", -} -/** - * A global cache volume identifier. - */ -export type CacheVolumeID = string & {__CacheVolumeID: never} - -export type ContainerAsTarballOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerBuildOpts = { - /** - * Path to the Dockerfile to use. - * - * Default: './Dockerfile'. - */ - dockerfile?: string - - /** - * Additional build arguments. - */ - buildArgs?: BuildArg[] - - /** - * Target build stage to build. - */ - target?: string - - /** - * Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name] in the build container - * - * They can be accessed in the Dockerfile using the "secret" mount type - * and mount path /run/secrets/[secret-name] - * e.g. RUN --mount=type=secret,id=my-secret curl url?token=$(cat /run/secrets/my-secret)" - */ - secrets?: Secret[] -} - -export type ContainerExportOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the exported image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the exported image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerImportOpts = { - /** - * Identifies the tag to import from the archive, if the archive bundles - * multiple tags. - */ - tag?: string -} - -export type ContainerPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type ContainerPublishOpts = { - /** - * Identifiers for other platform specific containers. - * Used for multi-platform image. - */ - platformVariants?: Container[] - - /** - * Force each layer of the published image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - */ - forcedCompression?: ImageLayerCompression - - /** - * Use the specified media types for the published image's layers. Defaults to OCI, which - * is largely compatible with most recent registries, but Docker may be needed for older - * registries without OCI support. - */ - mediaTypes?: ImageMediaTypes -} - -export type ContainerWithDefaultArgsOpts = { - /** - * Arguments to prepend to future executions (e.g., ["-v", "--no-cache"]). - */ - args?: string[] -} - -export type ContainerWithDirectoryOpts = { - /** - * Patterns to exclude in the written directory (e.g., ["node_modules/**", ".gitignore", ".git/"]). - */ - exclude?: string[] - - /** - * Patterns to include in the written directory (e.g., ["*.go", "go.mod", "go.sum"]). - */ - include?: string[] - - /** - * A user:group to set for the directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithEnvVariableOpts = { - /** - * Replace ${VAR} or $VAR in the value according to the current environment - * variables defined in the container (e.g., "/opt/bin:$PATH"). - */ - expand?: boolean -} - -export type ContainerWithExecOpts = { - /** - * If the container has an entrypoint, ignore it for args rather than using it to wrap them. - */ - skipEntrypoint?: boolean - - /** - * Content to write to the command's standard input before closing (e.g., "Hello world"). - */ - stdin?: string - - /** - * Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout"). - */ - redirectStdout?: string - - /** - * Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr"). - */ - redirectStderr?: string - - /** - * Provides dagger access to the executed command. - * - * Do not use this option unless you trust the command being executed. - * The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM. - */ - experimentalPrivilegedNesting?: boolean - - /** - * Execute the command with all root capabilities. This is similar to running a command - * with "sudo" or executing `docker run` with the `--privileged` flag. Containerization - * does not provide any security guarantees when using this option. It should only be used - * when absolutely necessary and only with trusted commands. - */ - insecureRootCapabilities?: boolean -} - -export type ContainerWithExposedPortOpts = { - /** - * Transport layer network protocol - */ - protocol?: NetworkProtocol - - /** - * Optional port description - */ - description?: string -} - -export type ContainerWithFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number - - /** - * A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedCacheOpts = { - /** - * Identifier of the directory to use as the cache volume's root. - */ - source?: Directory - - /** - * Sharing mode of the cache volume. - */ - sharing?: CacheSharingMode - - /** - * A user:group to set for the mounted cache directory. - * - * Note that this changes the ownership of the specified mount along with the - * initial filesystem provided by source (if any). It does not have any effect - * if/when the cache has already been created. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedDirectoryOpts = { - /** - * A user:group to set for the mounted directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedFileOpts = { - /** - * A user or user:group to set for the mounted file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithMountedSecretOpts = { - /** - * A user:group to set for the mounted secret. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string - - /** - * Permission given to the mounted secret (e.g., 0600). - * This option requires an owner to be set to be active. - * - * Default: 0400. - */ - mode?: number -} - -export type ContainerWithNewFileOpts = { - /** - * Content of the file to write (e.g., "Hello world!"). - */ - contents?: string - - /** - * Permission given to the written file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number - - /** - * A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithUnixSocketOpts = { - /** - * A user:group to set for the mounted socket. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - owner?: string -} - -export type ContainerWithoutExposedPortOpts = { - /** - * Port protocol to unexpose - */ - protocol?: NetworkProtocol -} - -/** - * A unique container identifier. Null designates an empty container (scratch). - */ -export type ContainerID = string & {__ContainerID: never} - -/** - * The `DateTime` scalar type represents a DateTime. The DateTime is serialized as an RFC 3339 quoted string - */ -export type DateTime = string & {__DateTime: never} - -export type DirectoryAsModuleOpts = { - /** - * An optional subpath of the directory which contains the module's source - * code. - * - * This is needed when the module code is in a subdirectory but requires - * parent directories to be loaded in order to execute. For example, the - * module source code may need a go.mod, project.toml, package.json, etc. file - * from a parent directory. - * - * If not set, the module source code is loaded from the root of the - * directory. - */ - sourceSubpath?: string -} - -export type DirectoryDockerBuildOpts = { - /** - * Path to the Dockerfile to use (e.g., "frontend.Dockerfile"). - * - * Defaults: './Dockerfile'. - */ - dockerfile?: string - - /** - * The platform to build. - */ - platform?: Platform - - /** - * Build arguments to use in the build. - */ - buildArgs?: BuildArg[] - - /** - * Target build stage to build. - */ - target?: string - - /** - * Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name]. - */ - secrets?: Secret[] -} - -export type DirectoryEntriesOpts = { - /** - * Location of the directory to look at (e.g., "/src"). - */ - path?: string -} - -export type DirectoryPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type DirectoryWithDirectoryOpts = { - /** - * Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - */ - exclude?: string[] - - /** - * Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - include?: string[] -} - -export type DirectoryWithFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number -} - -export type DirectoryWithNewDirectoryOpts = { - /** - * Permission granted to the created directory (e.g., 0777). - * - * Default: 0755. - */ - permissions?: number -} - -export type DirectoryWithNewFileOpts = { - /** - * Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - permissions?: number -} - -/** - * A content-addressed directory identifier. - */ -export type DirectoryID = string & {__DirectoryID: never} - -export type FileExportOpts = { - /** - * If allowParentDirPath is true, the path argument can be a directory path, in which case - * the file will be created in that directory. - */ - allowParentDirPath?: boolean -} - -/** - * A file identifier. - */ -export type FileID = string & {__FileID: never} - -export type FunctionWithArgOpts = { - /** - * A doc string for the argument, if any - */ - description?: string - - /** - * A default value to use for this argument if not explicitly set by the caller, if any - */ - defaultValue?: JSON -} - -/** - * A reference to a FunctionArg. - */ -export type FunctionArgID = string & {__FunctionArgID: never} - -/** - * A reference to a Function. - */ -export type FunctionID = string & {__FunctionID: never} - -/** - * A reference to GeneratedCode. - */ -export type GeneratedCodeID = string & {__GeneratedCodeID: never} - -export type GitRefTreeOpts = { - sshKnownHosts?: string - sshAuthSocket?: Socket -} - -export type HostDirectoryOpts = { - /** - * Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - */ - exclude?: string[] - - /** - * Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - include?: string[] -} - -export type HostServiceOpts = { - /** - * Upstream host to forward traffic to. - */ - host?: string -} - -export type HostTunnelOpts = { - /** - * Map each service port to the same port on the host, as if the service were - * running natively. - * - * Note: enabling may result in port conflicts. - */ - native?: boolean - - /** - * Configure explicit port forwarding rules for the tunnel. - * - * If a port's frontend is unspecified or 0, a random port will be chosen by - * the host. - * - * If no ports are given, all of the service's ports are forwarded. If native - * is true, each port maps to the same port on the host. If native is false, - * each port maps to a random port chosen by the host. - * - * If ports are given and native is true, the ports are additive. - */ - ports?: PortForward[] -} - -/** - * The `ID` scalar type represents a unique identifier, often used to refetch an object or as key for a cache. The ID type appears in a JSON response as a String; however, it is not intended to be human-readable. When expected as an input type, any string (such as `"4"`) or integer (such as `4`) input value will be accepted as an ID. - */ -export type ID = string & {__ID: never} - -/** - * Compression algorithm to use for image layers. - */ -export enum ImageLayerCompression { - Estargz = "EStarGZ", - Gzip = "Gzip", - Uncompressed = "Uncompressed", - Zstd = "Zstd", -} -/** - * Mediatypes to use in published or exported image metadata. - */ -export enum ImageMediaTypes { - Dockermediatypes = "DockerMediaTypes", - Ocimediatypes = "OCIMediaTypes", -} -/** - * An arbitrary JSON-encoded value. - */ -export type JSON = string & {__JSON: never} - -/** - * A reference to a Module. - */ -export type ModuleID = string & {__ModuleID: never} - -/** - * Transport layer network protocol associated to a port. - */ -export enum NetworkProtocol { - - /** - * TCP (Transmission Control Protocol) - */ - Tcp = "TCP", - - /** - * UDP (User Datagram Protocol) - */ - Udp = "UDP", -} -export type PipelineLabel = { - /** - * Label name. - */ - name: string - - /** - * Label value. - */ - value: string -} - -/** - * The platform config OS and architecture in a Container. - * - * The format is [os]/[platform]/[version] (e.g., "darwin/arm64/v7", "windows/amd64", "linux/arm64"). - */ -export type Platform = string & {__Platform: never} - -export type PortForward = { - /** - * Destination port for traffic. - */ - backend: number - - /** - * Port to expose to clients. If unspecified, a default will be chosen. - */ - frontend?: number - - /** - * Protocol to use for traffic. - */ - protocol?: NetworkProtocol -} - -export type ClientContainerOpts = { - id?: ContainerID - platform?: Platform -} - -export type ClientDirectoryOpts = { - id?: DirectoryID -} - -export type ClientGitOpts = { - /** - * Set to true to keep .git directory. - */ - keepGitDir?: boolean - - /** - * Set SSH known hosts - */ - sshKnownHosts?: string - - /** - * Set SSH auth socket - */ - sshAuthSocket?: Socket - - /** - * A service which must be started before the repo is fetched. - */ - experimentalServiceHost?: Service -} - -export type ClientHttpOpts = { - /** - * A service which must be started before the URL is fetched. - */ - experimentalServiceHost?: Service -} - -export type ClientModuleConfigOpts = { - subpath?: string -} - -export type ClientPipelineOpts = { - /** - * Pipeline description. - */ - description?: string - - /** - * Pipeline labels. - */ - labels?: PipelineLabel[] -} - -export type ClientSocketOpts = { - id?: SocketID -} - -/** - * A unique identifier for a secret. - */ -export type SecretID = string & {__SecretID: never} - -export type ServiceEndpointOpts = { - /** - * The exposed port number for the endpoint - */ - port?: number - - /** - * Return a URL with the given scheme, eg. http for http:// - */ - scheme?: string -} - -/** - * A unique service identifier. - */ -export type ServiceID = string & {__ServiceID: never} - -/** - * A content-addressed socket identifier. - */ -export type SocketID = string & {__SocketID: never} - -export type TypeDefWithFieldOpts = { - /** - * A doc string for the field, if any - */ - description?: string -} - -export type TypeDefWithObjectOpts = { - description?: string -} - -/** - * A reference to a TypeDef. - */ -export type TypeDefID = string & {__TypeDefID: never} - -/** - * Distinguishes the different kinds of TypeDefs. - */ -export enum TypeDefKind { - - /** - * A boolean value - */ - Booleankind = "BooleanKind", - - /** - * An integer value - */ - Integerkind = "IntegerKind", - - /** - * A list of values all having the same type. - * - * Always paired with a ListTypeDef. - */ - Listkind = "ListKind", - - /** - * A named type defined in the GraphQL schema, with fields and functions. - * - * Always paired with an ObjectTypeDef. - */ - Objectkind = "ObjectKind", - - /** - * A string value - */ - Stringkind = "StringKind", - - /** - * A special kind used to signify that no value is returned. - * - * This is used for functions that have no return value. The outer TypeDef - * specifying this Kind is always Optional, as the Void is never actually - * represented. - */ - Voidkind = "VoidKind", -} -/** - * The absense of a value. - * - * A Null Void is used as a placeholder for resolvers that do not return anything. - */ -export type Void = string & {__Void: never} - -export type __TypeEnumValuesOpts = { - includeDeprecated?: boolean -} - -export type __TypeFieldsOpts = { - includeDeprecated?: boolean -} - - - - - - - - -/** - * A directory whose contents persist across runs. - */ -export class CacheVolume extends BaseClient { - private readonly _id?: CacheVolumeID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: CacheVolumeID, - ) { - super(parent) - - this._id = _id - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } -} - - - -/** - * An OCI-compatible container, also known as a docker container. - */ -export class Container extends BaseClient { - private readonly _id?: ContainerID = undefined - private readonly _envVariable?: string = undefined - private readonly _export?: boolean = undefined - private readonly _imageRef?: string = undefined - private readonly _label?: string = undefined - private readonly _platform?: Platform = undefined - private readonly _publish?: string = undefined - private readonly _shellEndpoint?: string = undefined - private readonly _stderr?: string = undefined - private readonly _stdout?: string = undefined - private readonly _sync?: ContainerID = undefined - private readonly _user?: string = undefined - private readonly _workdir?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ContainerID, - _envVariable?: string, - _export?: boolean, - _imageRef?: string, - _label?: string, - _platform?: Platform, - _publish?: string, - _shellEndpoint?: string, - _stderr?: string, - _stdout?: string, - _sync?: ContainerID, - _user?: string, - _workdir?: string, - ) { - super(parent) - - this._id = _id - this._envVariable = _envVariable - this._export = _export - this._imageRef = _imageRef - this._label = _label - this._platform = _platform - this._publish = _publish - this._shellEndpoint = _shellEndpoint - this._stderr = _stderr - this._stdout = _stdout - this._sync = _sync - this._user = _user - this._workdir = _workdir - } - - /** - * A unique identifier for this container. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Turn the container into a Service. - * - * Be sure to set any exposed ports before this conversion. - */ - asService(): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "asService", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a File representing the container serialized to a tarball. - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - asTarball(opts?: ContainerAsTarballOpts): File { - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "asTarball", - args: { ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from a Dockerfile build. - * @param context Directory context used by the Dockerfile. - * @param opts.dockerfile Path to the Dockerfile to use. - * - * Default: './Dockerfile'. - * @param opts.buildArgs Additional build arguments. - * @param opts.target Target build stage to build. - * @param opts.secrets Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name] in the build container - * - * They can be accessed in the Dockerfile using the "secret" mount type - * and mount path /run/secrets/[secret-name] - * e.g. RUN --mount=type=secret,id=my-secret curl url?token=$(cat /run/secrets/my-secret)" - */ - build(context: Directory, opts?: ContainerBuildOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "build", - args: { context, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves default arguments for future commands. - */ - async defaultArgs(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultArgs", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a directory at the given path. - * - * Mounts are included. - * @param path The path of the directory to retrieve (e.g., "./src"). - */ - directory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves entrypoint to be prepended to the arguments of all commands. - */ - async entrypoint(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "entrypoint", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the value of the specified environment variable. - * @param name The name of the environment variable to retrieve (e.g., "PATH"). - */ - async envVariable(name: string): Promise { - if (this._envVariable) { - return this._envVariable - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "envVariable", - args: { name }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of environment variables passed to commands. - */ - async envVariables(): Promise { - type envVariables = { - name: string - value: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "envVariables", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new EnvVariable( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * EXPERIMENTAL API! Subject to change/removal at any time. - * - * experimentalWithAllGPUs configures all available GPUs on the host to be accessible to this container. - * This currently works for Nvidia devices only. - */ - experimentalWithAllGPUs(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "experimentalWithAllGPUs", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * EXPERIMENTAL API! Subject to change/removal at any time. - * - * experimentalWithGPU configures the provided list of devices to be accesible to this container. - * This currently works for Nvidia devices only. - */ - experimentalWithGPU(devices: string[]): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "experimentalWithGPU", - args: { devices }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Writes the container as an OCI tarball to the destination file path on the host for the specified platform variants. - * - * Return true on success. - * It can also publishes platform variants. - * @param path Host's destination path (e.g., "./tarball"). - * Path can be relative to the engine's workdir or absolute. - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the exported image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the exported image's layers. Defaults to OCI, which - * is largely compatible with most recent container runtimes, but Docker may be needed - * for older runtimes without OCI support. - */ - async export(path: string, opts?: ContainerExportOpts): Promise { - if (this._export) { - return this._export - } - - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path, ...opts, __metadata: metadata }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of exposed ports. - * - * This includes ports already exposed by the image, even if not - * explicitly added with dagger. - */ - async exposedPorts(): Promise { - type exposedPorts = { - description: string - port: number - protocol: NetworkProtocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "exposedPorts", - }, - { - operation: "description port protocol" - }, - ], - this.client - ) - - - return response.map( - (r) => new Port( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.port, - r.protocol, - ) - ) - } - - /** - * Retrieves a file at the given path. - * - * Mounts are included. - * @param path The path of the file to retrieve (e.g., "./README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from a pulled base image. - * @param address Image's address from its registry. - * - * Formatted as [host]/[user]/[repo]:[tag] (e.g., "docker.io/dagger/dagger:main"). - */ - from(address: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "from", - args: { address }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The unique image reference which can only be retrieved immediately after the 'Container.From' call. - */ - async imageRef(): Promise { - if (this._imageRef) { - return this._imageRef - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "imageRef", - }, - ], - this.client - ) - - - return response - } - - /** - * Reads the container from an OCI tarball. - * - * NOTE: this involves unpacking the tarball to an OCI store on the host at - * $XDG_CACHE_DIR/dagger/oci. This directory can be removed whenever you like. - * @param source File to read the container from. - * @param opts.tag Identifies the tag to import from the archive, if the archive bundles - * multiple tags. - */ - import_(source: File, opts?: ContainerImportOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "import", - args: { source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves the value of the specified label. - */ - async label(name: string): Promise { - if (this._label) { - return this._label - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "label", - args: { name }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of labels passed to container. - */ - async labels(): Promise { - type labels = { - name: string - value: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "labels", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new Label( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * Retrieves the list of paths where a directory is mounted. - */ - async mounts(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "mounts", - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a named sub-pipeline - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: ContainerPipelineOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The platform this container executes and publishes as. - */ - async platform(): Promise { - if (this._platform) { - return this._platform - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "platform", - }, - ], - this.client - ) - - - return response - } - - /** - * Publishes this container as a new image to the specified address. - * - * Publish returns a fully qualified ref. - * It can also publish platform variants. - * @param address Registry's address to publish the image to. - * - * Formatted as [host]/[user]/[repo]:[tag] (e.g. "docker.io/dagger/dagger:main"). - * @param opts.platformVariants Identifiers for other platform specific containers. - * Used for multi-platform image. - * @param opts.forcedCompression Force each layer of the published image to use the specified compression algorithm. - * If this is unset, then if a layer already has a compressed blob in the engine's - * cache, that will be used (this can result in a mix of compression algorithms for - * different layers). If this is unset and a layer has no compressed blob in the - * engine's cache, then it will be compressed using Gzip. - * @param opts.mediaTypes Use the specified media types for the published image's layers. Defaults to OCI, which - * is largely compatible with most recent registries, but Docker may be needed for older - * registries without OCI support. - */ - async publish(address: string, opts?: ContainerPublishOpts): Promise { - if (this._publish) { - return this._publish - } - - const metadata: Metadata = { - forcedCompression: { is_enum: true }, - mediaTypes: { is_enum: true }, - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "publish", - args: { address, ...opts, __metadata: metadata }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves this container's root filesystem. Mounts are not included. - */ - rootfs(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "rootfs", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Return a websocket endpoint that, if connected to, will start the container with a TTY streamed - * over the websocket. - * - * Primarily intended for internal use with the dagger CLI. - */ - async shellEndpoint(): Promise { - if (this._shellEndpoint) { - return this._shellEndpoint - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "shellEndpoint", - }, - ], - this.client - ) - - - return response - } - - /** - * The error stream of the last executed command. - * - * Will execute default command if none is set, or error if there's no default. - */ - async stderr(): Promise { - if (this._stderr) { - return this._stderr - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "stderr", - }, - ], - this.client - ) - - - return response - } - - /** - * The output stream of the last executed command. - * - * Will execute default command if none is set, or error if there's no default. - */ - async stdout(): Promise { - if (this._stdout) { - return this._stdout - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "stdout", - }, - ], - this.client - ) - - - return response - } - - /** - * Forces evaluation of the pipeline in the engine. - * - * It doesn't run the default command if no exec has been set. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves the user to be set for all commands. - */ - async user(): Promise { - if (this._user) { - return this._user - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "user", - }, - ], - this.client - ) - - - return response - } - - /** - * Configures default arguments for future commands. - * @param opts.args Arguments to prepend to future executions (e.g., ["-v", "--no-cache"]). - */ - withDefaultArgs(opts?: ContainerWithDefaultArgsOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withDefaultArgs", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a directory written at the given path. - * @param path Location of the written directory (e.g., "/tmp/directory"). - * @param directory Identifier of the directory to write - * @param opts.exclude Patterns to exclude in the written directory (e.g., ["node_modules/**", ".gitignore", ".git/"]). - * @param opts.include Patterns to include in the written directory (e.g., ["*.go", "go.mod", "go.sum"]). - * @param opts.owner A user:group to set for the directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withDirectory(path: string, directory: Directory, opts?: ContainerWithDirectoryOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withDirectory", - args: { path, directory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container but with a different command entrypoint. - * @param args Entrypoint to use for future executions (e.g., ["go", "run"]). - */ - withEntrypoint(args: string[]): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withEntrypoint", - args: { args }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the given environment variable. - * @param name The name of the environment variable (e.g., "HOST"). - * @param value The value of the environment variable. (e.g., "localhost"). - * @param opts.expand Replace ${VAR} or $VAR in the value according to the current environment - * variables defined in the container (e.g., "/opt/bin:$PATH"). - */ - withEnvVariable(name: string, value: string, opts?: ContainerWithEnvVariableOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withEnvVariable", - args: { name, value, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container after executing the specified command inside it. - * @param args Command to run instead of the container's default command (e.g., ["run", "main.go"]). - * - * If empty, the container's default command is used. - * @param opts.skipEntrypoint If the container has an entrypoint, ignore it for args rather than using it to wrap them. - * @param opts.stdin Content to write to the command's standard input before closing (e.g., "Hello world"). - * @param opts.redirectStdout Redirect the command's standard output to a file in the container (e.g., "/tmp/stdout"). - * @param opts.redirectStderr Redirect the command's standard error to a file in the container (e.g., "/tmp/stderr"). - * @param opts.experimentalPrivilegedNesting Provides dagger access to the executed command. - * - * Do not use this option unless you trust the command being executed. - * The command being executed WILL BE GRANTED FULL ACCESS TO YOUR HOST FILESYSTEM. - * @param opts.insecureRootCapabilities Execute the command with all root capabilities. This is similar to running a command - * with "sudo" or executing `docker run` with the `--privileged` flag. Containerization - * does not provide any security guarantees when using this option. It should only be used - * when absolutely necessary and only with trusted commands. - */ - withExec(args: string[], opts?: ContainerWithExecOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withExec", - args: { args, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Expose a network port. - * - * Exposed ports serve two purposes: - * - For health checks and introspection, when running services - * - For setting the EXPOSE OCI field when publishing the container - * @param port Port number to expose - * @param opts.protocol Transport layer network protocol - * @param opts.description Optional port description - */ - withExposedPort(port: number, opts?: ContainerWithExposedPortOpts): Container { - const metadata: Metadata = { - protocol: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withExposedPort", - args: { port, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the contents of the given file copied to the given path. - * @param path Location of the copied file (e.g., "/tmp/file.txt"). - * @param source Identifier of the file to copy. - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - * @param opts.owner A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withFile(path: string, source: File, opts?: ContainerWithFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Indicate that subsequent operations should be featured more prominently in - * the UI. - */ - withFocus(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withFocus", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus the given label. - * @param name The name of the label (e.g., "org.opencontainers.artifact.created"). - * @param value The value of the label (e.g., "2023-01-01T00:00:00Z"). - */ - withLabel(name: string, value: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withLabel", - args: { name, value }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a cache volume mounted at the given path. - * @param path Location of the cache directory (e.g., "/cache/node_modules"). - * @param cache Identifier of the cache volume to mount. - * @param opts.source Identifier of the directory to use as the cache volume's root. - * @param opts.sharing Sharing mode of the cache volume. - * @param opts.owner A user:group to set for the mounted cache directory. - * - * Note that this changes the ownership of the specified mount along with the - * initial filesystem provided by source (if any). It does not have any effect - * if/when the cache has already been created. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedCache(path: string, cache: CacheVolume, opts?: ContainerWithMountedCacheOpts): Container { - const metadata: Metadata = { - sharing: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedCache", - args: { path, cache, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a directory mounted at the given path. - * @param path Location of the mounted directory (e.g., "/mnt/directory"). - * @param source Identifier of the mounted directory. - * @param opts.owner A user:group to set for the mounted directory and its contents. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedDirectory(path: string, source: Directory, opts?: ContainerWithMountedDirectoryOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedDirectory", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a file mounted at the given path. - * @param path Location of the mounted file (e.g., "/tmp/file.txt"). - * @param source Identifier of the mounted file. - * @param opts.owner A user or user:group to set for the mounted file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withMountedFile(path: string, source: File, opts?: ContainerWithMountedFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a secret mounted into a file at the given path. - * @param path Location of the secret file (e.g., "/tmp/secret.txt"). - * @param source Identifier of the secret to mount. - * @param opts.owner A user:group to set for the mounted secret. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - * @param opts.mode Permission given to the mounted secret (e.g., 0600). - * This option requires an owner to be set to be active. - * - * Default: 0400. - */ - withMountedSecret(path: string, source: Secret, opts?: ContainerWithMountedSecretOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedSecret", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a temporary directory mounted at the given path. - * @param path Location of the temporary directory (e.g., "/tmp/temp_dir"). - */ - withMountedTemp(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withMountedTemp", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a new file written at the given path. - * @param path Location of the written file (e.g., "/tmp/file.txt"). - * @param opts.contents Content of the file to write (e.g., "Hello world!"). - * @param opts.permissions Permission given to the written file (e.g., 0600). - * - * Default: 0644. - * @param opts.owner A user:group to set for the file. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withNewFile(path: string, opts?: ContainerWithNewFileOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewFile", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a registry authentication for a given address. - * @param address Registry's address to bind the authentication to. - * Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main). - * @param username The username of the registry's account (e.g., "Dagger"). - * @param secret The API key, password or token to authenticate to this registry. - */ - withRegistryAuth(address: string, username: string, secret: Secret): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withRegistryAuth", - args: { address, username, secret }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Initializes this container from this DirectoryID. - */ - withRootfs(directory: Directory): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withRootfs", - args: { directory }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus an env variable containing the given secret. - * @param name The name of the secret variable (e.g., "API_SECRET"). - * @param secret The identifier of the secret value. - */ - withSecretVariable(name: string, secret: Secret): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withSecretVariable", - args: { name, secret }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Establish a runtime dependency on a service. - * - * The service will be started automatically when needed and detached when it is - * no longer needed, executing the default command if none is set. - * - * The service will be reachable from the container via the provided hostname alias. - * - * The service dependency will also convey to any files or directories produced by the container. - * @param alias A name that can be used to reach the service from the container - * @param service Identifier of the service container - */ - withServiceBinding(alias: string, service: Service): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withServiceBinding", - args: { alias, service }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container plus a socket forwarded to the given Unix socket path. - * @param path Location of the forwarded Unix socket (e.g., "/tmp/socket"). - * @param source Identifier of the socket to forward. - * @param opts.owner A user:group to set for the mounted socket. - * - * The user and group can either be an ID (1000:1000) or a name (foo:bar). - * - * If the group is omitted, it defaults to the same as the user. - */ - withUnixSocket(path: string, source: Socket, opts?: ContainerWithUnixSocketOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withUnixSocket", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a different command user. - * @param name The user to set (e.g., "root"). - */ - withUser(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withUser", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a different working directory. - * @param path The path to set as the working directory (e.g., "/app"). - */ - withWorkdir(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withWorkdir", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container minus the given environment variable. - * @param name The name of the environment variable (e.g., "HOST"). - */ - withoutEnvVariable(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutEnvVariable", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Unexpose a previously exposed port. - * @param port Port number to unexpose - * @param opts.protocol Port protocol to unexpose - */ - withoutExposedPort(port: number, opts?: ContainerWithoutExposedPortOpts): Container { - const metadata: Metadata = { - protocol: { is_enum: true }, - } - - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutExposedPort", - args: { port, ...opts, __metadata: metadata }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Indicate that subsequent operations should not be featured more prominently - * in the UI. - * - * This is the initial state of all containers. - */ - withoutFocus(): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutFocus", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container minus the given environment label. - * @param name The name of the label to remove (e.g., "org.opencontainers.artifact.created"). - */ - withoutLabel(name: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutLabel", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container after unmounting everything at the given path. - * @param path Location of the cache directory (e.g., "/cache/node_modules"). - */ - withoutMount(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutMount", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container without the registry authentication of a given address. - * @param address Registry's address to remove the authentication from. - * Formatted as [host]/[user]/[repo]:[tag] (e.g. docker.io/dagger/dagger:main). - */ - withoutRegistryAuth(address: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutRegistryAuth", - args: { address }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this container with a previously added Unix socket removed. - * @param path Location of the socket to remove (e.g., "/tmp/socket"). - */ - withoutUnixSocket(path: string): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutUnixSocket", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves the working directory for all commands. - */ - async workdir(): Promise { - if (this._workdir) { - return this._workdir - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "workdir", - }, - ], - this.client - ) - - - return response - } - - /** - * Call the provided function with current Container. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Container) => Container) { - return arg(this) - } -} - - - - - -/** - * A directory. - */ -export class Directory extends BaseClient { - private readonly _id?: DirectoryID = undefined - private readonly _export?: boolean = undefined - private readonly _sync?: DirectoryID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: DirectoryID, - _export?: boolean, - _sync?: DirectoryID, - ) { - super(parent) - - this._id = _id - this._export = _export - this._sync = _sync - } - - /** - * The content-addressed identifier of the directory. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Load the directory as a Dagger module - * @param opts.sourceSubpath An optional subpath of the directory which contains the module's source - * code. - * - * This is needed when the module code is in a subdirectory but requires - * parent directories to be loaded in order to execute. For example, the - * module source code may need a go.mod, project.toml, package.json, etc. file - * from a parent directory. - * - * If not set, the module source code is loaded from the root of the - * directory. - */ - asModule(opts?: DirectoryAsModuleOpts): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "asModule", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Gets the difference between this directory and an another directory. - * @param other Identifier of the directory to compare. - */ - diff(other: Directory): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "diff", - args: { other }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves a directory at the given path. - * @param path Location of the directory to retrieve (e.g., "/src"). - */ - directory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Builds a new Docker container from this directory. - * @param opts.dockerfile Path to the Dockerfile to use (e.g., "frontend.Dockerfile"). - * - * Defaults: './Dockerfile'. - * @param opts.platform The platform to build. - * @param opts.buildArgs Build arguments to use in the build. - * @param opts.target Target build stage to build. - * @param opts.secrets Secrets to pass to the build. - * - * They will be mounted at /run/secrets/[secret-name]. - */ - dockerBuild(opts?: DirectoryDockerBuildOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "dockerBuild", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a list of files and directories at the given path. - * @param opts.path Location of the directory to look at (e.g., "/src"). - */ - async entries(opts?: DirectoryEntriesOpts): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "entries", - args: { ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Writes the contents of the directory to a path on the host. - * @param path Location of the copied directory (e.g., "logs/"). - */ - async export(path: string): Promise { - if (this._export) { - return this._export - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a file at the given path. - * @param path Location of the file to retrieve (e.g., "README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a list of files and directories that matche the given pattern. - * @param pattern Pattern to match (e.g., "*.md"). - */ - async glob(pattern: string): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "glob", - args: { pattern }, - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a named sub-pipeline - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: DirectoryPipelineOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Force evaluation in the engine. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves this directory plus a directory written at the given path. - * @param path Location of the written directory (e.g., "/src/"). - * @param directory Identifier of the directory to copy. - * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - withDirectory(path: string, directory: Directory, opts?: DirectoryWithDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withDirectory", - args: { path, directory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus the contents of the given file copied to the given path. - * @param path Location of the copied file (e.g., "/file.txt"). - * @param source Identifier of the file to copy. - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - withFile(path: string, source: File, opts?: DirectoryWithFileOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withFile", - args: { path, source, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus a new directory created at the given path. - * @param path Location of the directory created (e.g., "/logs"). - * @param opts.permissions Permission granted to the created directory (e.g., 0777). - * - * Default: 0755. - */ - withNewDirectory(path: string, opts?: DirectoryWithNewDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewDirectory", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory plus a new file written at the given path. - * @param path Location of the written file (e.g., "/file.txt"). - * @param contents Content of the written file (e.g., "Hello world!"). - * @param opts.permissions Permission given to the copied file (e.g., 0600). - * - * Default: 0644. - */ - withNewFile(path: string, contents: string, opts?: DirectoryWithNewFileOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withNewFile", - args: { path, contents, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with all file/dir timestamps set to the given time. - * @param timestamp Timestamp to set dir/files in. - * - * Formatted in seconds following Unix epoch (e.g., 1672531199). - */ - withTimestamps(timestamp: number): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withTimestamps", - args: { timestamp }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with the directory at the given path removed. - * @param path Location of the directory to remove (e.g., ".github/"). - */ - withoutDirectory(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutDirectory", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Retrieves this directory with the file at the given path removed. - * @param path Location of the file to remove (e.g., "/file.txt"). - */ - withoutFile(path: string): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "withoutFile", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Directory. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Directory) => Directory) { - return arg(this) - } -} - - - -/** - * A simple key value object that represents an environment variable. - */ -export class EnvVariable extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: string, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The environment variable name. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The environment variable value. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - -/** - * A definition of a field on a custom object defined in a Module. - * A field on an object has a static value, as opposed to a function on an - * object whose value is computed by invoking code (and can accept arguments). - */ -export class FieldTypeDef extends BaseClient { - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _name?: string, - ) { - super(parent) - - this._description = _description - this._name = _name - } - - /** - * A doc string for the field, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the field in the object - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type of the field - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * A file. - */ -export class File extends BaseClient { - private readonly _id?: FileID = undefined - private readonly _contents?: string = undefined - private readonly _export?: boolean = undefined - private readonly _size?: number = undefined - private readonly _sync?: FileID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FileID, - _contents?: string, - _export?: boolean, - _size?: number, - _sync?: FileID, - ) { - super(parent) - - this._id = _id - this._contents = _contents - this._export = _export - this._size = _size - this._sync = _sync - } - - /** - * Retrieves the content-addressed identifier of the file. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the contents of the file. - */ - async contents(): Promise { - if (this._contents) { - return this._contents - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "contents", - }, - ], - this.client - ) - - - return response - } - - /** - * Writes the file to a file path on the host. - * @param path Location of the written directory (e.g., "output.txt"). - * @param opts.allowParentDirPath If allowParentDirPath is true, the path argument can be a directory path, in which case - * the file will be created in that directory. - */ - async export(path: string, opts?: FileExportOpts): Promise { - if (this._export) { - return this._export - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "export", - args: { path, ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Gets the size of the file, in bytes. - */ - async size(): Promise { - if (this._size) { - return this._size - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "size", - }, - ], - this.client - ) - - - return response - } - - /** - * Force evaluation in the engine. - */ - async sync(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "sync", - }, - ], - this.client - ) - - return this - } - - /** - * Retrieves this file with its created/modified timestamps set to the given time. - * @param timestamp Timestamp to set dir/files in. - * - * Formatted in seconds following Unix epoch (e.g., 1672531199). - */ - withTimestamps(timestamp: number): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "withTimestamps", - args: { timestamp }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current File. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: File) => File) { - return arg(this) - } -} - - - - - -/** - * Function represents a resolver provided by a Module. - * - * A function always evaluates against a parent object and is given a set of - * named arguments. - */ -export class Function_ extends BaseClient { - private readonly _id?: FunctionID = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FunctionID, - _description?: string, - _name?: string, - ) { - super(parent) - - this._id = _id - this._description = _description - this._name = _name - } - - /** - * The ID of the function - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Arguments accepted by this function, if any - */ - async args(): Promise { - type args = { - id: FunctionArgID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "args", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new FunctionArg( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * A doc string for the function, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the function - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type returned by this function - */ - returnType(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "returnType", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns the function with the provided argument - * @param name The name of the argument - * @param typeDef The type of the argument - * @param opts.description A doc string for the argument, if any - * @param opts.defaultValue A default value to use for this argument if not explicitly set by the caller, if any - */ - withArg(name: string, typeDef: TypeDef, opts?: FunctionWithArgOpts): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "withArg", - args: { name, typeDef, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns the function with the doc string - */ - withDescription(description: string): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "withDescription", - args: { description }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Function. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Function_) => Function_) { - return arg(this) - } -} - -/** - * An argument accepted by a function. - * - * This is a specification for an argument at function definition time, not an - * argument passed at function call time. - */ -export class FunctionArg extends BaseClient { - private readonly _id?: FunctionArgID = undefined - private readonly _defaultValue?: JSON = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: FunctionArgID, - _defaultValue?: JSON, - _description?: string, - _name?: string, - ) { - super(parent) - - this._id = _id - this._defaultValue = _defaultValue - this._description = _description - this._name = _name - } - - /** - * The ID of the argument - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * A default value to use for this argument when not explicitly set by the caller, if any - */ - async defaultValue(): Promise { - if (this._defaultValue) { - return this._defaultValue - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultValue", - }, - ], - this.client - ) - - - return response - } - - /** - * A doc string for the argument, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the argument - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The type of the argument - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - - - -export class FunctionCall extends BaseClient { - private readonly _name?: string = undefined - private readonly _parent?: JSON = undefined - private readonly _parentName?: string = undefined - private readonly _returnValue?: Void = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _parent?: JSON, - _parentName?: string, - _returnValue?: Void, - ) { - super(parent) - - this._name = _name - this._parent = _parent - this._parentName = _parentName - this._returnValue = _returnValue - } - - /** - * The argument values the function is being invoked with. - */ - async inputArgs(): Promise { - type inputArgs = { - name: string - value: JSON - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "inputArgs", - }, - { - operation: "name value" - }, - ], - this.client - ) - - - return response.map( - (r) => new FunctionCallArgValue( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.name, - r.value, - ) - ) - } - - /** - * The name of the function being called. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of the parent object of the function being called. - * If the function is "top-level" to the module, this is always an empty object. - */ - async parent(): Promise { - if (this._parent) { - return this._parent - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "parent", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the parent object of the function being called. - * If the function is "top-level" to the module, this is the name of the module. - */ - async parentName(): Promise { - if (this._parentName) { - return this._parentName - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "parentName", - }, - ], - this.client - ) - - - return response - } - - /** - * Set the return value of the function call to the provided value. - * The value should be a string of the JSON serialization of the return value. - */ - async returnValue(value: JSON): Promise { - if (this._returnValue) { - return this._returnValue - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "returnValue", - args: { value }, - }, - ], - this.client - ) - - - return response - } -} - - -export class FunctionCallArgValue extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: JSON = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: JSON, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The name of the argument. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of the argument represented as a string of the JSON serialization. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class GeneratedCode extends BaseClient { - private readonly _id?: GeneratedCodeID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: GeneratedCodeID, - ) { - super(parent) - - this._id = _id - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * The directory containing the generated code - */ - code(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "code", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * List of paths to mark generated in version control (i.e. .gitattributes) - */ - async vcsGeneratedPaths(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "vcsGeneratedPaths", - }, - ], - this.client - ) - - - return response - } - - /** - * List of paths to ignore in version control (i.e. .gitignore) - */ - async vcsIgnoredPaths(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "vcsIgnoredPaths", - }, - ], - this.client - ) - - - return response - } - - /** - * Set the list of paths to mark generated in version control - */ - withVCSGeneratedPaths(paths: string[]): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "withVCSGeneratedPaths", - args: { paths }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Set the list of paths to ignore in version control - */ - withVCSIgnoredPaths(paths: string[]): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "withVCSIgnoredPaths", - args: { paths }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current GeneratedCode. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: GeneratedCode) => GeneratedCode) { - return arg(this) - } -} - - - -/** - * A git ref (tag, branch or commit). - */ -export class GitRef extends BaseClient { - private readonly _commit?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _commit?: string, - ) { - super(parent) - - this._commit = _commit - } - - /** - * The resolved commit id at this ref. - */ - async commit(): Promise { - if (this._commit) { - return this._commit - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "commit", - }, - ], - this.client - ) - - - return response - } - - /** - * The filesystem tree at this ref. - */ - tree(opts?: GitRefTreeOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "tree", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * A git repository. - */ -export class GitRepository extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * Returns details on one branch. - * @param name Branch's name (e.g., "main"). - */ - branch(name: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "branch", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns details on one commit. - * @param id Identifier of the commit (e.g., "b6315d8f2810962c601af73f86831f6866ea798b"). - */ - commit(id: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "commit", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns details on one tag. - * @param name Tag's name (e.g., "v0.3.9"). - */ - tag(name: string): GitRef { - return new GitRef({ - queryTree: [ - ...this._queryTree, - { - operation: "tag", - args: { name }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - -/** - * Information about the host execution environment. - */ -export class Host extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * Accesses a directory on the host. - * @param path Location of the directory to access (e.g., "."). - * @param opts.exclude Exclude artifacts that match the given pattern (e.g., ["node_modules/", ".git*"]). - * @param opts.include Include only artifacts that match the given pattern (e.g., ["app/", "package.*"]). - */ - directory(path: string, opts?: HostDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { path, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Accesses a file on the host. - * @param path Location of the file to retrieve (e.g., "README.md"). - */ - file(path: string): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a service that forwards traffic to a specified address via the host. - * @param ports Ports to expose via the service, forwarding through the host network. - * - * If a port's frontend is unspecified or 0, it defaults to the same as the - * backend port. - * - * An empty set of ports is not valid; an error will be returned. - * @param opts.host Upstream host to forward traffic to. - */ - service(ports: PortForward[], opts?: HostServiceOpts): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "service", - args: { ports, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets a secret given a user-defined name and the file path on the host, and returns the secret. - * The file is limited to a size of 512000 bytes. - * @param name The user defined name for this secret. - * @param path Location of the file to set as a secret. - */ - setSecretFile(name: string, path: string): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "setSecretFile", - args: { name, path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a tunnel that forwards traffic from the host to a service. - * @param service Service to send traffic from the tunnel. - * @param opts.native Map each service port to the same port on the host, as if the service were - * running natively. - * - * Note: enabling may result in port conflicts. - * @param opts.ports Configure explicit port forwarding rules for the tunnel. - * - * If a port's frontend is unspecified or 0, a random port will be chosen by - * the host. - * - * If no ports are given, all of the service's ports are forwarded. If native - * is true, each port maps to the same port on the host. If native is false, - * each port maps to a random port chosen by the host. - * - * If ports are given and native is true, the ports are additive. - */ - tunnel(service: Service, opts?: HostTunnelOpts): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "tunnel", - args: { service, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Accesses a Unix socket on the host. - * @param path Location of the Unix socket (e.g., "/var/run/docker.sock"). - */ - unixSocket(path: string): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "unixSocket", - args: { path }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - - - - - - - - - - -/** - * A simple key value object that represents a label. - */ -export class Label extends BaseClient { - private readonly _name?: string = undefined - private readonly _value?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _value?: string, - ) { - super(parent) - - this._name = _name - this._value = _value - } - - /** - * The label name. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The label value. - */ - async value(): Promise { - if (this._value) { - return this._value - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "value", - }, - ], - this.client - ) - - - return response - } -} - -/** - * A definition of a list type in a Module. - */ -export class ListTypeDef extends BaseClient { - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - ) { - super(parent) - - } - - /** - * The type of the elements in the list - */ - elementTypeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "elementTypeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } -} - - -export class Module_ extends BaseClient { - private readonly _id?: ModuleID = undefined - private readonly _description?: string = undefined - private readonly _name?: string = undefined - private readonly _sdk?: string = undefined - private readonly _serve?: Void = undefined - private readonly _sourceDirectorySubPath?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ModuleID, - _description?: string, - _name?: string, - _sdk?: string, - _serve?: Void, - _sourceDirectorySubPath?: string, - ) { - super(parent) - - this._id = _id - this._description = _description - this._name = _name - this._sdk = _sdk - this._serve = _serve - this._sourceDirectorySubPath = _sourceDirectorySubPath - } - - /** - * The ID of the module - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Modules used by this module - */ - async dependencies(): Promise { - type dependencies = { - id: ModuleID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencies", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new Module_( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The dependencies as configured by the module - */ - async dependencyConfig(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencyConfig", - }, - ], - this.client - ) - - - return response - } - - /** - * The doc string of the module, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The code generated by the SDK's runtime - */ - generatedCode(): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "generatedCode", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The name of the module - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * Objects served by this module - */ - async objects(): Promise { - type objects = { - id: TypeDefID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "objects", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new TypeDef( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The SDK used by this module. Either a name of a builtin SDK or a module ref pointing to the SDK's implementation. - */ - async sdk(): Promise { - if (this._sdk) { - return this._sdk - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sdk", - }, - ], - this.client - ) - - - return response - } - - /** - * Serve a module's API in the current session. - * Note: this can only be called once per session. - * In the future, it could return a stream or service to remove the side effect. - */ - async serve(): Promise { - if (this._serve) { - return this._serve - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "serve", - }, - ], - this.client - ) - - - return response - } - - /** - * The directory containing the module's source code - */ - sourceDirectory(): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "sourceDirectory", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The module's subpath within the source directory - */ - async sourceDirectorySubPath(): Promise { - if (this._sourceDirectorySubPath) { - return this._sourceDirectorySubPath - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sourceDirectorySubPath", - }, - ], - this.client - ) - - - return response - } - - /** - * This module plus the given Object type and associated functions - */ - withObject(object: TypeDef): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "withObject", - args: { object }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Module. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Module_) => Module_) { - return arg(this) - } -} - -/** - * Static configuration for a module (e.g. parsed contents of dagger.json) - */ -export class ModuleConfig extends BaseClient { - private readonly _name?: string = undefined - private readonly _root?: string = undefined - private readonly _sdk?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _name?: string, - _root?: string, - _sdk?: string, - ) { - super(parent) - - this._name = _name - this._root = _root - this._sdk = _sdk - } - - /** - * Modules that this module depends on. - */ - async dependencies(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "dependencies", - }, - ], - this.client - ) - - - return response - } - - /** - * Exclude these file globs when loading the module root. - */ - async exclude(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "exclude", - }, - ], - this.client - ) - - - return response - } - - /** - * Include only these file globs when loading the module root. - */ - async include(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "include", - }, - ], - this.client - ) - - - return response - } - - /** - * The name of the module. - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } - - /** - * The root directory of the module's project, which may be above the module source code. - */ - async root(): Promise { - if (this._root) { - return this._root - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "root", - }, - ], - this.client - ) - - - return response - } - - /** - * Either the name of a built-in SDK ('go', 'python', etc.) OR a module reference pointing to the SDK's module implementation. - */ - async sdk(): Promise { - if (this._sdk) { - return this._sdk - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "sdk", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A definition of a custom object defined in a Module. - */ -export class ObjectTypeDef extends BaseClient { - private readonly _description?: string = undefined - private readonly _name?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _name?: string, - ) { - super(parent) - - this._description = _description - this._name = _name - } - - /** - * The doc string for the object, if any - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * Static fields defined on this object, if any - */ - async fields(): Promise { - type fields = { - description: string - name: string - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "fields", - }, - { - operation: "description name" - }, - ], - this.client - ) - - - return response.map( - (r) => new FieldTypeDef( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.name, - ) - ) - } - - /** - * Functions defined on this object, if any - */ - async functions(): Promise { - type functions = { - id: FunctionID - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "functions", - }, - { - operation: "id" - }, - ], - this.client - ) - - - return response.map( - (r) => new Function_( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.id, - ) - ) - } - - /** - * The name of the object - */ - async name(): Promise { - if (this._name) { - return this._name - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "name", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A port exposed by a container. - */ -export class Port extends BaseClient { - private readonly _description?: string = undefined - private readonly _port?: number = undefined - private readonly _protocol?: NetworkProtocol = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _description?: string, - _port?: number, - _protocol?: NetworkProtocol, - ) { - super(parent) - - this._description = _description - this._port = _port - this._protocol = _protocol - } - - /** - * The port description. - */ - async description(): Promise { - if (this._description) { - return this._description - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "description", - }, - ], - this.client - ) - - - return response - } - - /** - * The port number. - */ - async port(): Promise { - if (this._port) { - return this._port - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "port", - }, - ], - this.client - ) - - - return response - } - - /** - * The transport layer network protocol. - */ - async protocol(): Promise { - if (this._protocol) { - return this._protocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "protocol", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class Client extends BaseClient { - private readonly _checkVersionCompatibility?: boolean = undefined - private readonly _defaultPlatform?: Platform = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _checkVersionCompatibility?: boolean, - _defaultPlatform?: Platform, - ) { - super(parent) - - this._checkVersionCompatibility = _checkVersionCompatibility - this._defaultPlatform = _defaultPlatform - } - - /** - * Constructs a cache volume for a given cache key. - * @param key A string identifier to target this cache volume (e.g., "modules-cache"). - */ - cacheVolume(key: string): CacheVolume { - return new CacheVolume({ - queryTree: [ - ...this._queryTree, - { - operation: "cacheVolume", - args: { key }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Checks if the current Dagger Engine is compatible with an SDK's required version. - * @param version The SDK's required version. - */ - async checkVersionCompatibility(version: string): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "checkVersionCompatibility", - args: { version }, - }, - ], - this.client - ) - - - return response - } - - /** - * Creates a scratch container or loads one by ID. - * - * Optional platform argument initializes new containers to execute and publish - * as that platform. Platform defaults to that of the builder's host. - */ - container(opts?: ClientContainerOpts): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "container", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The FunctionCall context that the SDK caller is currently executing in. - * If the caller is not currently executing in a function, this will return - * an error. - */ - currentFunctionCall(): FunctionCall { - return new FunctionCall({ - queryTree: [ - ...this._queryTree, - { - operation: "currentFunctionCall", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The module currently being served in the session, if any. - */ - currentModule(): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "currentModule", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The default platform of the builder. - */ - async defaultPlatform(): Promise { - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "defaultPlatform", - }, - ], - this.client - ) - - - return response - } - - /** - * Creates an empty directory or loads one by ID. - */ - directory(opts?: ClientDirectoryOpts): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "directory", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a file by ID. - * @deprecated Use loadFileFromID instead. - */ - file(id: FileID): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "file", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a function. - */ - function_(name: string, returnType: TypeDef): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "function", - args: { name, returnType }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a code generation result, given a directory containing the generated - * code. - */ - generatedCode(code: Directory): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "generatedCode", - args: { code }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Queries a git repository. - * @param url Url of the git repository. - * Can be formatted as https://{host}/{owner}/{repo}, git@{host}:{owner}/{repo} - * Suffix ".git" is optional. - * @param opts.keepGitDir Set to true to keep .git directory. - * @param opts.sshKnownHosts Set SSH known hosts - * @param opts.sshAuthSocket Set SSH auth socket - * @param opts.experimentalServiceHost A service which must be started before the repo is fetched. - */ - git(url: string, opts?: ClientGitOpts): GitRepository { - return new GitRepository({ - queryTree: [ - ...this._queryTree, - { - operation: "git", - args: { url, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Queries the host environment. - */ - host(): Host { - return new Host({ - queryTree: [ - ...this._queryTree, - { - operation: "host", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a file containing an http remote url content. - * @param url HTTP url to get the content from (e.g., "https://docs.dagger.io"). - * @param opts.experimentalServiceHost A service which must be started before the URL is fetched. - */ - http(url: string, opts?: ClientHttpOpts): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "http", - args: { url, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a CacheVolume from its ID. - */ - loadCacheVolumeFromID(id: CacheVolumeID): CacheVolume { - return new CacheVolume({ - queryTree: [ - ...this._queryTree, - { - operation: "loadCacheVolumeFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a container from an ID. - */ - loadContainerFromID(id: ContainerID): Container { - return new Container({ - queryTree: [ - ...this._queryTree, - { - operation: "loadContainerFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Directory from its ID. - */ - loadDirectoryFromID(id: DirectoryID): Directory { - return new Directory({ - queryTree: [ - ...this._queryTree, - { - operation: "loadDirectoryFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a File from its ID. - */ - loadFileFromID(id: FileID): File { - return new File({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFileFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a function argument by ID. - */ - loadFunctionArgFromID(id: FunctionArgID): FunctionArg { - return new FunctionArg({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFunctionArgFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a function by ID. - */ - loadFunctionFromID(id: FunctionID): Function_ { - return new Function_({ - queryTree: [ - ...this._queryTree, - { - operation: "loadFunctionFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a GeneratedCode by ID. - */ - loadGeneratedCodeFromID(id: GeneratedCodeID): GeneratedCode { - return new GeneratedCode({ - queryTree: [ - ...this._queryTree, - { - operation: "loadGeneratedCodeFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a module by ID. - */ - loadModuleFromID(id: ModuleID): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "loadModuleFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Secret from its ID. - */ - loadSecretFromID(id: SecretID): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "loadSecretFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a service from ID. - */ - loadServiceFromID(id: ServiceID): Service { - return new Service({ - queryTree: [ - ...this._queryTree, - { - operation: "loadServiceFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a Socket from its ID. - */ - loadSocketFromID(id: SocketID): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "loadSocketFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load a TypeDef by ID. - */ - loadTypeDefFromID(id: TypeDefID): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "loadTypeDefFromID", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a new module. - */ - module_(): Module_ { - return new Module_({ - queryTree: [ - ...this._queryTree, - { - operation: "module", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Load the static configuration for a module from the given source directory and optional subpath. - */ - moduleConfig(sourceDirectory: Directory, opts?: ClientModuleConfigOpts): ModuleConfig { - return new ModuleConfig({ - queryTree: [ - ...this._queryTree, - { - operation: "moduleConfig", - args: { sourceDirectory, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Creates a named sub-pipeline. - * @param name Pipeline name. - * @param opts.description Pipeline description. - * @param opts.labels Pipeline labels. - */ - pipeline(name: string, opts?: ClientPipelineOpts): Client { - return new Client({ - queryTree: [ - ...this._queryTree, - { - operation: "pipeline", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a secret from its ID. - * @deprecated Use loadSecretFromID instead - */ - secret(id: SecretID): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "secret", - args: { id }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets a secret given a user defined name to its plaintext and returns the secret. - * The plaintext value is limited to a size of 128000 bytes. - * @param name The user defined name for this secret - * @param plaintext The plaintext of the secret - */ - setSecret(name: string, plaintext: string): Secret { - return new Secret({ - queryTree: [ - ...this._queryTree, - { - operation: "setSecret", - args: { name, plaintext }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Loads a socket by its ID. - * @deprecated Use loadSocketFromID instead. - */ - socket(opts?: ClientSocketOpts): Socket { - return new Socket({ - queryTree: [ - ...this._queryTree, - { - operation: "socket", - args: { ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Create a new TypeDef. - */ - typeDef(): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "typeDef", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current Client. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: Client) => Client) { - return arg(this) - } -} - -/** - * A reference to a secret value, which can be handled more safely than the value itself. - */ -export class Secret extends BaseClient { - private readonly _id?: SecretID = undefined - private readonly _plaintext?: string = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: SecretID, - _plaintext?: string, - ) { - super(parent) - - this._id = _id - this._plaintext = _plaintext - } - - /** - * The identifier for this secret. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * The value of this secret. - */ - async plaintext(): Promise { - if (this._plaintext) { - return this._plaintext - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "plaintext", - }, - ], - this.client - ) - - - return response - } -} - - - - -export class Service extends BaseClient { - private readonly _id?: ServiceID = undefined - private readonly _endpoint?: string = undefined - private readonly _hostname?: string = undefined - private readonly _start?: ServiceID = undefined - private readonly _stop?: ServiceID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: ServiceID, - _endpoint?: string, - _hostname?: string, - _start?: ServiceID, - _stop?: ServiceID, - ) { - super(parent) - - this._id = _id - this._endpoint = _endpoint - this._hostname = _hostname - this._start = _start - this._stop = _stop - } - - /** - * A unique identifier for this service. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves an endpoint that clients can use to reach this container. - * - * If no port is specified, the first exposed port is used. If none exist an error is returned. - * - * If a scheme is specified, a URL is returned. Otherwise, a host:port pair is returned. - * @param opts.port The exposed port number for the endpoint - * @param opts.scheme Return a URL with the given scheme, eg. http for http:// - */ - async endpoint(opts?: ServiceEndpointOpts): Promise { - if (this._endpoint) { - return this._endpoint - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "endpoint", - args: { ...opts }, - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves a hostname which can be used by clients to reach this container. - */ - async hostname(): Promise { - if (this._hostname) { - return this._hostname - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "hostname", - }, - ], - this.client - ) - - - return response - } - - /** - * Retrieves the list of ports provided by the service. - */ - async ports(): Promise { - type ports = { - description: string - port: number - protocol: NetworkProtocol - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "ports", - }, - { - operation: "description port protocol" - }, - ], - this.client - ) - - - return response.map( - (r) => new Port( - { - queryTree: this.queryTree, - host: this.clientHost, - sessionToken: this.sessionToken, - }, - r.description, - r.port, - r.protocol, - ) - ) - } - - /** - * Start the service and wait for its health checks to succeed. - * - * Services bound to a Container do not need to be manually started. - */ - async start(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "start", - }, - ], - this.client - ) - - return this - } - - /** - * Stop the service. - */ - async stop(): Promise { - await computeQuery( - [ - ...this._queryTree, - { - operation: "stop", - }, - ], - this.client - ) - - return this - } -} - - - - -export class Socket extends BaseClient { - private readonly _id?: SocketID = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: SocketID, - ) { - super(parent) - - this._id = _id - } - - /** - * The content-addressed identifier of the socket. - */ - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } -} - - - - - -/** - * A definition of a parameter or return type in a Module. - */ -export class TypeDef extends BaseClient { - private readonly _id?: TypeDefID = undefined - private readonly _kind?: TypeDefKind = undefined - private readonly _optional?: boolean = undefined - - /** - * Constructor is used for internal usage only, do not create object from it. - */ - constructor( - parent?: { queryTree?: QueryTree[], host?: string, sessionToken?: string }, - _id?: TypeDefID, - _kind?: TypeDefKind, - _optional?: boolean, - ) { - super(parent) - - this._id = _id - this._kind = _kind - this._optional = _optional - } - async id(): Promise { - if (this._id) { - return this._id - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "id", - }, - ], - this.client - ) - - - return response - } - - /** - * If kind is LIST, the list-specific type definition. - * If kind is not LIST, this will be null. - */ - asList(): ListTypeDef { - return new ListTypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "asList", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * If kind is OBJECT, the object-specific type definition. - * If kind is not OBJECT, this will be null. - */ - asObject(): ObjectTypeDef { - return new ObjectTypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "asObject", - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * The kind of type this is (e.g. primitive, list, object) - */ - async kind(): Promise { - if (this._kind) { - return this._kind - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "kind", - }, - ], - this.client - ) - - - return response - } - - /** - * Whether this type can be set to null. Defaults to false. - */ - async optional(): Promise { - if (this._optional) { - return this._optional - } - - const response: Awaited = await computeQuery( - [ - ...this._queryTree, - { - operation: "optional", - }, - ], - this.client - ) - - - return response - } - - /** - * Adds a static field for an Object TypeDef, failing if the type is not an object. - * @param name The name of the field in the object - * @param typeDef The type of the field - * @param opts.description A doc string for the field, if any - */ - withField(name: string, typeDef: TypeDef, opts?: TypeDefWithFieldOpts): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withField", - args: { name, typeDef, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Adds a function for an Object TypeDef, failing if the type is not an object. - */ - withFunction(function_: Function_): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withFunction", - args: { function_ }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets the kind of the type. - */ - withKind(kind: TypeDefKind): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withKind", - args: { kind }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a TypeDef of kind List with the provided type for its elements. - */ - withListOf(elementType: TypeDef): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withListOf", - args: { elementType }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Returns a TypeDef of kind Object with the provided name. - * - * Note that an object's fields and functions may be omitted if the intent is - * only to refer to an object. This is how functions are able to return their - * own object, or any other circular reference. - */ - withObject(name: string, opts?: TypeDefWithObjectOpts): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withObject", - args: { name, ...opts }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Sets whether this type can be set to null. - */ - withOptional(optional: boolean): TypeDef { - return new TypeDef({ - queryTree: [ - ...this._queryTree, - { - operation: "withOptional", - args: { optional }, - }, - ], - host: this.clientHost, - sessionToken: this.sessionToken, - }) - } - - /** - * Call the provided function with current TypeDef. - * - * This is useful for reusability and readability by not breaking the calling chain. - */ - with(arg: (param: TypeDef) => TypeDef) { - return arg(this) - } -} - - - - - - - diff --git a/.fluentci/sdk/connect.ts b/.fluentci/sdk/connect.ts deleted file mode 100644 index 1618683..0000000 --- a/.fluentci/sdk/connect.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Writable } from "node:stream"; - -import { Client } from "./client.gen.ts"; - -/** - * ConnectOpts defines option used to connect to an engine. - */ -export interface ConnectOpts { - /** - * Use to overwrite Dagger workdir - * @defaultValue process.cwd() - */ - Workdir?: string; - /** - * Enable logs output - * @example - * LogOutput - * ```ts - * connect(async (client: Client) => { - const source = await client.host().workdir().id() - ... - }, {LogOutput: process.stdout}) - ``` - */ - LogOutput?: Writable; -} - -export type CallbackFct = (client: Client) => Promise; - -export interface ConnectParams { - port: number; - session_token: string; -} - -/** - * connect runs GraphQL server and initializes a - * GraphQL client to execute query on it through its callback. - * This implementation is based on the existing Go SDK. - */ -export async function connect( - cb: CallbackFct, - config: ConnectOpts = {} -): Promise { - let client: Client; - - // Prefer DAGGER_SESSION_PORT if set - const daggerSessionPort = Deno.env.get("DAGGER_SESSION_PORT"); - if (daggerSessionPort) { - const sessionToken = Deno.env.get("DAGGER_SESSION_TOKEN"); - if (!sessionToken) { - throw new Error( - "DAGGER_SESSION_TOKEN must be set when using DAGGER_SESSION_PORT" - ); - } - - if (config.Workdir && config.Workdir !== "") { - throw new Error( - "cannot configure workdir for existing session (please use --workdir or host.directory with absolute paths instead)" - ); - } - - client = new Client({ - host: `127.0.0.1:${daggerSessionPort}`, - sessionToken: sessionToken, - }); - } else { - throw new Error("DAGGER_SESSION_PORT must be set"); - } - - await cb(client); -} diff --git a/.fluentci/sdk/nix/example.ts b/.fluentci/sdk/nix/example.ts deleted file mode 100644 index d30ebd5..0000000 --- a/.fluentci/sdk/nix/example.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withNix } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withNix( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/sdk/nix/example_with_devbox.ts b/.fluentci/sdk/nix/example_with_devbox.ts deleted file mode 100644 index 60174e9..0000000 --- a/.fluentci/sdk/nix/example_with_devbox.ts +++ /dev/null @@ -1,19 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevbox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevbox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl", "bash"]) - ) - .withExec(["devbox", "global", "add", "gh"]) - .withExec(["sh", "-c", 'eval "$(devbox global shellenv)" && gh version']); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/sdk/nix/example_with_devbox_pkg.ts b/.fluentci/sdk/nix/example_with_devbox_pkg.ts deleted file mode 100644 index 1728d3e..0000000 --- a/.fluentci/sdk/nix/example_with_devbox_pkg.ts +++ /dev/null @@ -1,21 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevboxExec, withPackageFromDevbox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevboxExec( - withPackageFromDevbox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl", "bash"]), - ["gh"] - ), - ["gh version"] - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/sdk/nix/example_with_devenv.ts b/.fluentci/sdk/nix/example_with_devenv.ts deleted file mode 100644 index c3c4341..0000000 --- a/.fluentci/sdk/nix/example_with_devenv.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withDevenv } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withDevenv( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/sdk/nix/example_with_flox.ts b/.fluentci/sdk/nix/example_with_flox.ts deleted file mode 100644 index 9eb9859..0000000 --- a/.fluentci/sdk/nix/example_with_flox.ts +++ /dev/null @@ -1,17 +0,0 @@ -import Client from "../../deps.ts"; -import { connect } from "../connect.ts"; -import { withFlox } from "./steps.ts"; - -connect(async (client: Client) => { - const ctr = withFlox( - client - .pipeline("nix-installer") - .container() - .from("alpine") - .withExec(["apk", "add", "curl"]) - ); - - const result = await ctr.stdout(); - - console.log(result); -}); diff --git a/.fluentci/sdk/nix/index.ts b/.fluentci/sdk/nix/index.ts deleted file mode 100644 index 4c1d2db..0000000 --- a/.fluentci/sdk/nix/index.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { - withDevbox, - withDevboxExec, - withDevenv, - withFlox, - withNix, - withPackageFromDevbox, -} from "./steps.ts"; - -export { - withDevbox, - withDevboxExec, - withDevenv, - withFlox, - withNix, - withPackageFromDevbox, -}; diff --git a/.fluentci/sdk/nix/steps.ts b/.fluentci/sdk/nix/steps.ts deleted file mode 100644 index f1b1f0e..0000000 --- a/.fluentci/sdk/nix/steps.ts +++ /dev/null @@ -1,103 +0,0 @@ -import { Container } from "../client.gen.ts"; - -export const withNix = (ctr: Container) => - ctr - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/group ] && cp /etc/nix/group /etc/group; exit 0", - ]) - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/passwd ] && cp /etc/nix/passwd /etc/passwd; exit 0", - ]) - .withExec([ - "sh", - "-c", - "[ -f /etc/nix/shadow ] && cp /etc/nix/shadow /etc/shadow; exit 0", - ]) - .withExec([ - "sh", - "-c", - '[ ! -f "/nix/receipt.json" ] && curl --proto =https --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install linux --extra-conf "sandbox = false" --init none --no-confirm; exit 0', - ]) - .withExec(["cp", "/etc/group", "/etc/nix/group"]) - .withExec(["cp", "/etc/passwd", "/etc/nix/passwd"]) - .withExec(["cp", "/etc/shadow", "/etc/nix/shadow"]) - .withExec([ - "sed", - "-i", - "s/auto-allocate-uids = true/auto-allocate-uids = false/g", - "/etc/nix/nix.conf", - ]) - .withEnvVariable("PATH", "${PATH}:/nix/var/nix/profiles/default/bin", { - expand: true, - }) - .withExec(["nix", "run", "nixpkgs#hello"]); - -export const withDevbox = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "devbox"]) - .withExec(["addgroup", "devbox", "nixbld"]) - .withEnvVariable("FORCE", "1") - .withExec(["sh", "-c", "curl -fsSL https://get.jetpack.io/devbox | bash"]) - .withExec(["devbox", "version"]); - -export const withPackageFromDevbox = (ctr: Container, pkgs: string[]) => - withDevbox(ctr).withExec(["devbox", "global", "add", ...pkgs]); - -export const withDevboxExec = (ctr: Container, cmds: string[]) => - cmds.reduce( - (ctr, cmd) => - ctr.withExec(["sh", "-c", `eval "$(devbox global shellenv)" && ${cmd}`]), - ctr - ); - -export const withDevenv = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "devenv"]) - .withExec(["addgroup", "devenv", "nixbld"]) - .withEnvVariable("USER", "root") - .withExec([ - "sh", - "-c", - 'echo "trusted-users = root $USER" | tee -a /etc/nix/nix.conf', - ]) - .withExec([ - "nix", - "profile", - "install", - "--accept-flake-config", - "github:cachix/cachix", - ]) - .withExec(["cachix", "use", "devenv"]) - .withExec([ - "nix", - "profile", - "install", - "--accept-flake-config", - "github:cachix/devenv/latest", - ]) - .withExec(["devenv", "version"]); - -export const withFlox = (ctr: Container) => - withNix(ctr) - .withExec(["adduser", "--disabled-password", "flox"]) - .withExec(["addgroup", "flox", "nixbld"]) - .withExec([ - "sh", - "-c", - "echo 'extra-trusted-substituters = https://cache.floxdev.com' | tee -a /etc/nix/nix.conf && echo 'extra-trusted-public-keys = flox-store-public-0:8c/B+kjIaQ+BloCmNkRUKwaVPFWkriSAd0JJvuDu4F0=' | tee -a /etc/nix/nix.conf", - ]) - .withExec([ - "nix", - "profile", - "install", - "--impure", - "--experimental-features", - "nix-command flakes auto-allocate-uids", - "--accept-flake-config", - "github:flox/floxpkgs#flox.fromCatalog", - ]) - .withExec(["flox", "--version"]); diff --git a/.fluentci/sdk/utils.ts b/.fluentci/sdk/utils.ts deleted file mode 100644 index 075e278..0000000 --- a/.fluentci/sdk/utils.ts +++ /dev/null @@ -1,251 +0,0 @@ -// deno-lint-ignore-file no-explicit-any -import { - ClientError, - gql, - GraphQLClient, - GraphQLRequestError, - TooManyNestedObjectsError, - UnknownDaggerError, - NotAwaitedRequestError, - ExecError, -} from "../deps.ts"; - -import { Metadata, QueryTree } from "./client.gen.ts"; - -/** - * Format argument into GraphQL query format. - */ -function buildArgs(args: any): string { - const metadata: Metadata = args.__metadata || {}; - - // Remove unwanted quotes - const formatValue = (key: string, value: string) => { - // Special treatment for enumeration, they must be inserted without quotes - if (metadata[key]?.is_enum) { - return JSON.stringify(value).replace(/['"]+/g, ""); - } - - return JSON.stringify(value).replace( - /\{"[a-zA-Z]+":|,"[a-zA-Z]+":/gi, - (str) => { - return str.replace(/"/g, ""); - } - ); - }; - - if (args === undefined || args === null) { - return ""; - } - - const formattedArgs = Object.entries(args).reduce( - (acc: any, [key, value]) => { - // Ignore internal metadata key - if (key === "__metadata") { - return acc; - } - - if (value !== undefined && value !== null) { - acc.push(`${key}: ${formatValue(key, value as string)}`); - } - - return acc; - }, - [] - ); - - if (formattedArgs.length === 0) { - return ""; - } - - return `(${formattedArgs})`; -} - -/** - * Find QueryTree, convert them into GraphQl query - * then compute and return the result to the appropriate field - */ -async function computeNestedQuery( - query: QueryTree[], - client: GraphQLClient -): Promise { - // Check if there is a nested queryTree to be executed - const isQueryTree = (value: any) => value["_queryTree"] !== undefined; - - // Check if there is a nested array of queryTree to be executed - const isArrayQueryTree = (value: any[]) => - value.every((v) => v instanceof Object && isQueryTree(v)); - - // Prepare query tree for final query by computing nested queries - // and building it with their results. - const computeQueryTree = async (value: any): Promise => { - // Resolve sub queries if operation's args is a subquery - for (const op of value["_queryTree"]) { - await computeNestedQuery([op], client); - } - - // push an id that will be used by the container - return buildQuery([ - ...value["_queryTree"], - { - operation: "id", - }, - ]); - }; - - // Remove all undefined args and assert args type - const queryToExec = query.filter((q): q is Required => !!q.args); - - for (const q of queryToExec) { - await Promise.all( - // Compute nested query for single object - Object.entries(q.args).map(async ([key, value]: any) => { - if (value instanceof Object && isQueryTree(value)) { - // push an id that will be used by the container - const getQueryTree = await computeQueryTree(value); - - q.args[key] = await compute(getQueryTree, client); - } - - // Compute nested query for array of object - if (Array.isArray(value) && isArrayQueryTree(value)) { - const tmp: any = q.args[key]; - - for (let i = 0; i < value.length; i++) { - // push an id that will be used by the container - const getQueryTree = await computeQueryTree(value[i]); - - tmp[i] = await compute(getQueryTree, client); - } - - q.args[key] = tmp; - } - }) - ); - } -} - -/** - * Convert the queryTree into a GraphQL query - * @param q - * @returns - */ -export function buildQuery(q: QueryTree[]): string { - const query = q.reduce((acc, { operation, args }, i) => { - const qLen = q.length; - - acc += ` ${operation} ${args ? `${buildArgs(args)}` : ""} ${ - qLen - 1 !== i ? "{" : "}".repeat(qLen - 1) - }`; - - return acc; - }, ""); - - return `{${query - .replaceAll('"StringKind"', "StringKind") - .replaceAll('"VoidKind"', "VoidKind") - .replaceAll('"IntegerKind"', "IntegerKind") - .replaceAll('"BooleanKind"', "BooleanKind") - .replaceAll('"ObjectKind"', "ObjectKind") - .replaceAll('"ListKind"', "ListKind") - .replaceAll("function_", "function")} }`; -} - -/** - * Convert querytree into a Graphql query then compute it - * @param q | QueryTree[] - * @param client | GraphQLClient - * @returns - */ -export async function computeQuery( - q: QueryTree[], - client: GraphQLClient -): Promise { - await computeNestedQuery(q, client); - - const query = buildQuery(q); - - return await compute(query, client); -} - -/** - * Return a Graphql query result flattened - * @param response any - * @returns - */ -export function queryFlatten(response: any): T { - // Recursion break condition - // If our response is not an object or an array we assume we reached the value - if (!(response instanceof Object) || Array.isArray(response)) { - return response; - } - - const keys = Object.keys(response); - - if (keys.length != 1) { - // Dagger is currently expecting to only return one value - // If the response is nested in a way were more than one object is nested inside throw an error - throw new TooManyNestedObjectsError( - "Too many nested objects inside graphql response", - { response: response } - ); - } - - const nestedKey = keys[0]; - - return queryFlatten(response[nestedKey]); -} - -/** - * Send a GraphQL document to the server - * return a flatten result - * @hidden - */ -export async function compute( - query: string, - client: GraphQLClient -): Promise { - let computeQuery: Awaited; - try { - computeQuery = await client.request( - gql` - ${query} - ` - ); - } catch (e: any) { - if (e instanceof ClientError) { - const msg = e.response.errors?.[0]?.message ?? `API Error`; - const ext = e.response.errors?.[0]?.extensions; - - if (ext?._type === "EXEC_ERROR") { - throw new ExecError(msg, { - cmd: (ext.cmd as string[]) ?? [], - exitCode: (ext.exitCode as number) ?? -1, - stdout: (ext.stdout as string) ?? "", - stderr: (ext.stderr as string) ?? "", - }); - } - - throw new GraphQLRequestError(msg, { - request: e.request, - response: e.response, - cause: e, - }); - } - - // Looking for connection error in case the function has not been awaited. - if (e.errno === "ECONNREFUSED") { - throw new NotAwaitedRequestError( - "Encountered an error while requesting data via graphql through a synchronous call. Make sure the function called is awaited.", - { cause: e } - ); - } - - // Just throw the unknown error - throw new UnknownDaggerError( - "Encountered an unknown error while requesting data via graphql", - { cause: e } - ); - } - - return queryFlatten(computeQuery); -} diff --git a/.fluentci/src/aws/README.md b/.fluentci/src/aws/README.md deleted file mode 100644 index 363a172..0000000 --- a/.fluentci/src/aws/README.md +++ /dev/null @@ -1,39 +0,0 @@ -# AWS CodePipeline - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `buildspec.yml` file in your project: - -```bash -fluentci ac init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline - -version: 0.2 -phases: - install: - commands: - - curl -fsSL https://deno.land/x/install/install.sh | sh - - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - build: - commands: - - fluentci run deno_pipeline fmt lint test - post_build: - commands: - - echo Build completed on `date` - -``` - -Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs. diff --git a/.fluentci/src/aws/config.ts b/.fluentci/src/aws/config.ts deleted file mode 100644 index 879c50e..0000000 --- a/.fluentci/src/aws/config.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { FluentAWSCodePipeline } from "../../deps.ts"; - -export function generateYaml(): FluentAWSCodePipeline.BuildSpec { - const buildspec = new FluentAWSCodePipeline.BuildSpec(); - buildspec - .phase("install", { - commands: [ - "curl -fsSL https://deno.land/x/install/install.sh | sh", - '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", - "mv bin/dagger /usr/local/bin", - "dagger version", - ], - }) - .phase("build", { - commands: ["fluentci run deno_pipeline fmt lint test"], - }) - .phase("post_build", { - commands: ["echo Build completed on `date`"], - }); - return buildspec; -} diff --git a/.fluentci/src/aws/config_test.ts b/.fluentci/src/aws/config_test.ts deleted file mode 100644 index b3e0ecb..0000000 --- a/.fluentci/src/aws/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAWSCodePipelineTest() { - const buildspec = generateYaml(); - const actual = buildspec.toString(); - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/src/aws/init.ts b/.fluentci/src/aws/init.ts deleted file mode 100644 index 83944b7..0000000 --- a/.fluentci/src/aws/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("buildspec.yml"); diff --git a/.fluentci/src/azure/README.md b/.fluentci/src/azure/README.md deleted file mode 100644 index 897c815..0000000 --- a/.fluentci/src/azure/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Azure Pipelines - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/codecov_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `azure-pipelines.yml` file in your project: - -```bash -fluentci ap init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines - -trigger: - - main -pool: - name: Default - vmImage: ubuntu-latest -steps: - - script: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" - displayName: Install Deno - - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - displayName: Setup Dagger - - script: fluentci run deno_pipeline fmt lint test - displayName: Run Dagger Pipelines - -``` - -Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs. diff --git a/.fluentci/src/azure/config.ts b/.fluentci/src/azure/config.ts deleted file mode 100644 index 71b39a0..0000000 --- a/.fluentci/src/azure/config.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { FluentAzurePipelines } from "../../deps.ts"; - -export function generateYaml(): FluentAzurePipelines.AzurePipeline { - const azurePipeline = new FluentAzurePipelines.AzurePipeline(); - - const installDeno = `\ - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - export PATH="$DENO_INSTALL/bin:$PATH" -`; - - const setupDagger = `\ - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.9.3 sh - sudo mv bin/dagger /usr/local/bin - dagger version -`; - - azurePipeline - .trigger(["main"]) - .pool({ - name: "Default", - vmImage: "ubuntu-latest", - }) - .step({ - script: installDeno, - displayName: "Install Deno", - }) - .step({ - script: "deno install -A -r https://cli.fluentci.io -n fluentci", - displayName: "Setup Fluent CI CLI", - }) - .step({ - script: setupDagger, - displayName: "Setup Dagger", - }) - .step({ - script: "fluentci run deno_pipeline fmt lint test", - displayName: "Run Dagger Pipelines", - }); - return azurePipeline; -} diff --git a/.fluentci/src/azure/config_test.ts b/.fluentci/src/azure/config_test.ts deleted file mode 100644 index 493b659..0000000 --- a/.fluentci/src/azure/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateAzurePipelinesTest() { - const azurepipelines = generateYaml(); - const actual = azurepipelines.toString(); - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/src/azure/init.ts b/.fluentci/src/azure/init.ts deleted file mode 100644 index 2e71b2e..0000000 --- a/.fluentci/src/azure/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save("azure-pipeline.yml"); diff --git a/.fluentci/src/circleci/README.md b/.fluentci/src/circleci/README.md deleted file mode 100644 index 7b652cf..0000000 --- a/.fluentci/src/circleci/README.md +++ /dev/null @@ -1,47 +0,0 @@ -# Circle CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - - -The following command will generate a `.circleci/config.yml` file in your project: - -```bash -fluentci cci init -t deno_pipeline -``` - -Generated file: - -```yaml -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci - -version: 2.1 -jobs: - tests: - steps: - - checkout - - run: sudo apt-get update && sudo apt-get install -y curl unzip - - run: | - curl -fsSL https://deno.land/x/install/install.sh | sh - export DENO_INSTALL="$HOME/.deno" - 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.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - run: - name: Upload Coverage - command: fluentci run deno_pipeline fmt lint test - machine: - image: ubuntu-2004:2023.07.1 -workflows: - dagger: - jobs: - - tests - -``` - -Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs. diff --git a/.fluentci/src/circleci/config.ts b/.fluentci/src/circleci/config.ts deleted file mode 100644 index acb64fa..0000000 --- a/.fluentci/src/circleci/config.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { FluentCircleCI } from "../../deps.ts"; - -export function generateYaml(): FluentCircleCI.CircleCI { - const circleci = new FluentCircleCI.CircleCI(); - - const tests = new FluentCircleCI.Job() - .machine({ image: "ubuntu-2004:2023.07.1" }) - .steps([ - "checkout", - { - run: "sudo apt-get update && sudo apt-get install -y curl unzip", - }, - { - run: `\ -curl -fsSL https://deno.land/x/install/install.sh | sh -export DENO_INSTALL="$HOME/.deno" -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 -sudo mv bin/dagger /usr/local/bin -dagger version`, - }, - { - run: { - name: "Run Dagger Pipelines", - command: "fluentci run deno_pipeline fmt lint test", - }, - }, - ]); - - circleci.jobs({ tests }).workflow("dagger", ["tests"]); - - return circleci; -} diff --git a/.fluentci/src/circleci/config_test.ts b/.fluentci/src/circleci/config_test.ts deleted file mode 100644 index 6c9cd3c..0000000 --- a/.fluentci/src/circleci/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateCircleCITest() { - const circleci = generateYaml(); - const actual = circleci.toString(); - const expected = Deno.readTextFileSync("./fixtures/config.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/src/circleci/init.ts b/.fluentci/src/circleci/init.ts deleted file mode 100644 index 1f71248..0000000 --- a/.fluentci/src/circleci/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".circleci/config.yml"); diff --git a/.fluentci/src/dagger/index.ts b/.fluentci/src/dagger/index.ts deleted file mode 100644 index c2508d8..0000000 --- a/.fluentci/src/dagger/index.ts +++ /dev/null @@ -1,12 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { - fmt, - lint, - test, - deploy, - compile, - exclude, - jobDescriptions, -} from "./jobs.ts"; - -export { fmt, lint, pipeline, test, deploy, compile, exclude, jobDescriptions }; diff --git a/.fluentci/src/dagger/jobs.ts b/.fluentci/src/dagger/jobs.ts deleted file mode 100644 index 912f02a..0000000 --- a/.fluentci/src/dagger/jobs.ts +++ /dev/null @@ -1,327 +0,0 @@ -import Client, { Directory, Secret, File } from "../../deps.ts"; -import { connect } from "../../sdk/connect.ts"; -import { existsSync } from "node:fs"; -import { getDirectory, getDenoDeployToken } from "./lib.ts"; - -export enum Job { - fmt = "fmt", - lint = "lint", - test = "test", - compile = "compile", - deploy = "deploy", -} - -export const exclude = [".git", ".devbox", ".fluentci"]; - -const baseCtr = (client: Client, pipeline: string) => { - return client - .pipeline(pipeline) - .container() - .from("denoland/deno:alpine") - .withExec(["apk", "update"]) - .withExec(["apk", "add", "perl-utils"]); -}; - -/** - * @function - * @description Lint your code - * @param {string | Directory} src - * @returns {string} - */ -export async function lint( - src: string | Directory | undefined = "." -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "lint"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.lint) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - console.log(result); - - id = await ctr.directory("/app").id(); - }); - return id; -} - -/** - * @function - * @description Format your code - * @param {string | Directory} src - * @returns {string} - */ -export async function fmt( - src: string | Directory | undefined = "." -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "fmt"]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command); - - const result = await ctr.stdout(); - console.log(result); - id = await ctr.directory("/app").id(); - }); - - return id; -} - -/** - * @function - * @description Run your tests - * @param {string | Directory} src - * @param {string[]} ignore - * @returns {string} - */ -export async function test( - src: string | Directory | undefined = ".", - ignore: string[] = [] -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; - - if (ignore.length > 0) { - command = command.concat([`--ignore=${ignore.join(",")}`]); - } - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.test) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withMountedCache("/deno-dir", client.cacheVolume("deno-cache")) - .withExec(command) - .withExec([ - "sh", - "-c", - "deno coverage ./coverage --lcov > coverage.lcov", - ]); - - const cov = await ctr.file("/app/coverage.lcov"); - cov.export("./coverage.lcov"); - id = await cov.id(); - - const result = await ctr.stdout(); - console.log(result); - }); - return id; -} - -/** - * @function - * @description Compile your code - * @param {string | Directory} src - * @param {string} file - * @param {string} output - * @param {string} target - * @returns {string} - */ -export async function compile( - src: string | Directory | undefined = ".", - file = "main.ts", - output = "main", - target = "x86_64-unknown-linux-gnu" -): Promise { - let id = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let command = [ - "deno", - "compile", - "-A", - "--output", - output, - "--target", - Deno.env.get("TARGET") || target, - file, - ]; - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - } - - const ctr = baseCtr(client, Job.fmt) - .withMountedCache("/assets", client.cacheVolume("gh-release-assets")) - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withExec(command) - .withExec(["ls", "-ltr", "."]) - .withExec([ - "tar", - "czvf", - `/assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz`, - output, - ]) - .withExec([ - "sh", - "-c", - `shasum -a 256 /assets/${output}_${Deno.env.get("TAG") || ""}_${ - Deno.env.get("TARGET") || target - }.tar.gz > /assets/${output}_${ - Deno.env.get("TAG") || "" - }_${Deno.env.get("TARGET" || target)}.tar.gz.sha256`, - ]); - - const exe = await ctr.file(`/app/${output}`); - exe.export(`./${output}`); - - await ctr.stdout(); - id = await exe.id(); - }); - - return id; -} - -/** - * @function - * @description Deploy your code to Deno Deploy - * @param {string | Directory} src - * @param {string | Secret} token - * @param {string} project - * @param {string} main - * @param {boolean} noStatic - * @param {string} excludeOpt - * @returns {string} - */ -export async function deploy( - src: string | Directory | undefined = ".", - token?: string | Secret, - project?: string, - main?: string, - noStatic?: boolean, - excludeOpt?: string -): Promise { - let result = ""; - await connect(async (client) => { - const context = getDirectory(client, src); - let installDeployCtl = [ - "deno", - "install", - "--allow-all", - "--no-check", - "-r", - "-f", - "https://deno.land/x/deploy/deployctl.ts", - ]; - - let command = ["deployctl", "deploy"]; - - if (Deno.env.get("NO_STATIC") || noStatic) { - command = command.concat(["--no-static"]); - } - - if (Deno.env.get("EXCLUDE") || excludeOpt) { - command = command.concat([ - `--exclude=${Deno.env.get("EXCLUDE") || excludeOpt}`, - ]); - } - - const secret = getDenoDeployToken(client, token); - - if (!secret) { - console.error("DENO_DEPLOY_TOKEN environment variable is not set"); - Deno.exit(1); - } - - if (!project) { - throw new Error("DENO_PROJECT environment variable is not set"); - } - - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; - command = command.concat([ - `--project=${Deno.env.get("DENO_PROJECT") || project}`, - script, - ]); - - if (existsSync("devbox.json")) { - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; - installDeployCtl = [ - "sh", - "-c", - `devbox run -- ${installDeployCtl.join(" ")}`, - ]; - } - - const ctr = baseCtr(client, Job.deploy) - .from("denoland/deno:alpine") - .withDirectory("/app", context, { - exclude, - }) - .withWorkdir("/app") - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) - .withSecretVariable("DENO_DEPLOY_TOKEN", secret) - .withEnvVariable( - "DENO_MAIN_SCRIPT", - Deno.env.get("DENO_MAIN_SCRIPT") || main || "main.tsx" - ) - .withExec(installDeployCtl) - .withExec(command); - - result = await ctr.stdout(); - console.log(result); - }); - - return "Done"; -} - -export type JobExec = - | ((src: string | Directory | undefined) => Promise) - | (( - src: string | Directory | undefined, - ignore?: string[] - ) => Promise) - | (( - src: string | Directory | undefined, - file?: string, - output?: string, - target?: string - ) => Promise); - -export const runnableJobs: Record = { - [Job.fmt]: fmt, - [Job.lint]: lint, - [Job.test]: test, - [Job.compile]: compile, - [Job.deploy]: deploy, -}; - -export const jobDescriptions: Record = { - [Job.fmt]: "Format your code", - [Job.lint]: "Lint your code", - [Job.test]: "Run your tests", - [Job.compile]: "Compile your code", - [Job.deploy]: "Deploy your code to Deno Deploy", -}; diff --git a/.fluentci/src/dagger/lib.ts b/.fluentci/src/dagger/lib.ts deleted file mode 100644 index 21c4bf8..0000000 --- a/.fluentci/src/dagger/lib.ts +++ /dev/null @@ -1,37 +0,0 @@ -import Client, { - Directory, - DirectoryID, - Secret, - SecretID, -} from "../../deps.ts"; - -export const getDirectory = ( - client: Client, - src: string | Directory | undefined = "." -) => { - if (typeof src === "string" && src.startsWith("core.Directory")) { - return client.directory({ - id: src as DirectoryID, - }); - } - return src instanceof Directory ? src : client.host().directory(src); -}; - -export const getDenoDeployToken = (client: Client, token?: string | Secret) => { - if (Deno.env.get("DENO_DEPLOY_TOKEN")) { - return client.setSecret( - "DENO_DEPLOY_TOKEN", - Deno.env.get("DENO_DEPLOY_TOKEN")! - ); - } - if (token && typeof token === "string") { - if (token.startsWith("core.Secret")) { - return client.loadSecretFromID(token as SecretID); - } - return client.setSecret("DENO_DEPLOY_TOKEN", token); - } - if (token && token instanceof Secret) { - return token; - } - return undefined; -}; diff --git a/.fluentci/src/dagger/list_jobs.ts b/.fluentci/src/dagger/list_jobs.ts deleted file mode 100644 index 99f407a..0000000 --- a/.fluentci/src/dagger/list_jobs.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { brightGreen, stringifyTree } from "../../deps.ts"; -import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; - -const tree = { - name: brightGreen("deno_pipeline"), - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ - name: jobDescriptions[job] - ? `${brightGreen(job)} - ${jobDescriptions[job]}` - : brightGreen(job), - children: [], - })), -}; - -console.log( - stringifyTree( - tree, - (t) => t.name, - (t) => t.children - ) -); diff --git a/.fluentci/src/dagger/pipeline.ts b/.fluentci/src/dagger/pipeline.ts deleted file mode 100644 index 5956b46..0000000 --- a/.fluentci/src/dagger/pipeline.ts +++ /dev/null @@ -1,28 +0,0 @@ -import { uploadContext } from "../../deps.ts"; -import * as jobs from "./jobs.ts"; - -const { fmt, lint, test, runnableJobs, exclude } = jobs; - -export default async function pipeline(src = ".", args: string[] = []) { - if (Deno.env.has("FLUENTCI_SESSION_ID")) { - await uploadContext(src, exclude); - } - if (args.length > 0) { - await runSpecificJobs(args as jobs.Job[]); - return; - } - - await fmt(src); - await lint(src); - await test(src); -} - -async function runSpecificJobs(args: jobs.Job[]) { - for (const name of args) { - const job = runnableJobs[name]; - if (!job) { - throw new Error(`Job ${name} not found`); - } - await job("."); - } -} diff --git a/.fluentci/src/dagger/runner.ts b/.fluentci/src/dagger/runner.ts deleted file mode 100644 index 59f82f5..0000000 --- a/.fluentci/src/dagger/runner.ts +++ /dev/null @@ -1,17 +0,0 @@ -import pipeline from "./pipeline.ts"; -import { parse, camelCase, snakeCase } from "../../deps.ts"; - -const args = parse(Deno.args.map((x) => x.split(" ")).flat()); - -if (!Array.isArray(Deno.args)) { - for (const param of Object.keys(args) - .filter((x) => x !== "_") - .map((x) => snakeCase(x).toUpperCase())) { - Deno.env.set(param, args[camelCase(param)]); - } -} - -await pipeline( - ".", - Array.isArray(Deno.args) ? Deno.args : (args._ as string[]) -); diff --git a/.fluentci/src/github/README.md b/.fluentci/src/github/README.md deleted file mode 100644 index 710d06e..0000000 --- a/.fluentci/src/github/README.md +++ /dev/null @@ -1,49 +0,0 @@ -# Github Actions - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.github/workflows/ci.yml` file in your project: - -```bash -fluentci gh init -t deno_pipeline -``` - -Or, if you already have a `.fluentci` folder (generated from `fluentci init -t deno`) in your project: - -```bash -fluentci gh init -``` - -Generated file: - -```yaml -# 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@v2 - - uses: denoland/setup-deno@v1 - with: - deno-version: v1.37 - - name: Setup Fluent CI CLI - run: deno install -A -r https://cli.fluentci.io -n fluentci - - name: Setup Dagger - run: | - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh - sudo mv bin/dagger /usr/local/bin - dagger version - - name: Run Dagger Pipelines - run: fluentci run deno_pipeline fmt lint test -``` - -Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs. diff --git a/.fluentci/src/github/config.ts b/.fluentci/src/github/config.ts deleted file mode 100644 index 017540c..0000000 --- a/.fluentci/src/github/config.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { JobSpec, Workflow } from "fluent_github_actions"; - -export function generateYaml(): Workflow { - const workflow = new Workflow("Tests"); - - const push = { - branches: ["main"], - }; - - const tests: JobSpec = { - "runs-on": "ubuntu-latest", - steps: [ - { - uses: "actions/checkout@v2", - }, - { - name: "Setup Fluent CI", - uses: "fluentci-io/setup-fluentci@v2", - }, - { - name: "Run Dagger Pipelines", - run: "fluentci run deno_pipeline fmt lint test", - }, - ], - }; - - workflow.on({ push }).jobs({ tests }); - return workflow; -} diff --git a/.fluentci/src/github/config_test.ts b/.fluentci/src/github/config_test.ts deleted file mode 100644 index 6ffc37b..0000000 --- a/.fluentci/src/github/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGithubActionsWorkflowTest() { - const workflow = generateYaml(); - const actual = workflow.toString(); - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/src/github/init.ts b/.fluentci/src/github/init.ts deleted file mode 100644 index 4788c58..0000000 --- a/.fluentci/src/github/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().save(".github/workflows/ci.yml"); diff --git a/.fluentci/src/gitlab/README.md b/.fluentci/src/gitlab/README.md deleted file mode 100644 index ec3f729..0000000 --- a/.fluentci/src/gitlab/README.md +++ /dev/null @@ -1,48 +0,0 @@ -# Gitlab CI - -[![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%2Fdeno_pipeline&query=%24.version)](https://pkg.fluentci.io/deno_pipeline) -[![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) -![deno compatibility](https://shield.deno.dev/deno/^1.37) -[![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) - -The following command will generate a `.gitlab-ci.yml` file in your project: - -```bash -fluentci gl init -t deno_pipeline -``` - -Generated file: - -```yaml - -# Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci - -.docker: - image: denoland/deno:alpine - services: - - docker:${DOCKER_VERSION}-dind - variables: - DOCKER_HOST: tcp://docker:2376 - DOCKER_TLS_VERIFY: "1" - DOCKER_TLS_CERTDIR: /certs - DOCKER_CERT_PATH: /certs/client - DOCKER_DRIVER: overlay2 - DOCKER_VERSION: 20.10.16 - -.dagger: - extends: .docker - 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.8.1 sh - - mv bin/dagger /usr/local/bin - - dagger version - -tests: - extends: .dagger - script: - - fluentci run deno_pipeline fmt lint test - -``` - -Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs. diff --git a/.fluentci/src/gitlab/config.ts b/.fluentci/src/gitlab/config.ts deleted file mode 100644 index 5124081..0000000 --- a/.fluentci/src/gitlab/config.ts +++ /dev/null @@ -1,34 +0,0 @@ -import { FluentGitlabCI } from "../../deps.ts"; - -export function generateYaml(): FluentGitlabCI.GitlabCI { - const docker = new FluentGitlabCI.Job() - .image("denoland/deno:alpine") - .services(["docker:${DOCKER_VERSION}-dind"]) - .variables({ - DOCKER_HOST: "tcp://docker:2376", - DOCKER_TLS_VERIFY: "1", - DOCKER_TLS_CERTDIR: "/certs", - DOCKER_CERT_PATH: "/certs/client", - DOCKER_DRIVER: "overlay2", - DOCKER_VERSION: "20.10.16", - }); - - const dagger = new FluentGitlabCI.Job().extends(".docker").beforeScript( - ` - 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 - mv bin/dagger /usr/local/bin - dagger version - ` - ); - - const tests = new FluentGitlabCI.Job() - .extends(".dagger") - .script("fluentci run deno_pipeline fmt lint test"); - - return new FluentGitlabCI.GitlabCI() - .addJob(".docker", docker) - .addJob(".dagger", dagger) - .addJob("tests", tests); -} diff --git a/.fluentci/src/gitlab/config_test.ts b/.fluentci/src/gitlab/config_test.ts deleted file mode 100644 index 2058b4d..0000000 --- a/.fluentci/src/gitlab/config_test.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { assertEquals } from "../../deps.ts"; -import { generateYaml } from "./config.ts"; - -Deno.test(function generateGitlabCITest() { - const gitlabci = generateYaml(); - const actual = gitlabci.toString(); - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); - assertEquals(actual, expected); -}); diff --git a/.fluentci/src/gitlab/init.ts b/.fluentci/src/gitlab/init.ts deleted file mode 100644 index 4da66cf..0000000 --- a/.fluentci/src/gitlab/init.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { generateYaml } from "./config.ts"; - -generateYaml().write(); diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 811b903..422aa75 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,7 +13,7 @@ jobs: - name: Setup Fluent CI uses: fluentci-io/setup-fluentci@v4 - name: Run Dagger Pipelines - run: fluentci run . fmt lint test + run: fluentci run deno_pipeline fmt lint test - name: Upload to Codecov run: fluentci run codecov_pipeline env: diff --git a/.github/workflows/codesee-arch-diagram.yml b/.github/workflows/codesee-arch-diagram.yml deleted file mode 100644 index 806d41d..0000000 --- a/.github/workflows/codesee-arch-diagram.yml +++ /dev/null @@ -1,23 +0,0 @@ -# This workflow was added by CodeSee. Learn more at https://codesee.io/ -# This is v2.0 of this workflow file -on: - push: - branches: - - main - pull_request_target: - types: [opened, synchronize, reopened] - -name: CodeSee - -permissions: read-all - -jobs: - codesee: - runs-on: ubuntu-latest - continue-on-error: true - name: Analyze the repo with CodeSee - steps: - - uses: Codesee-io/codesee-action@v2 - with: - codesee-token: ${{ secrets.CODESEE_ARCH_DIAG_API_TOKEN }} - codesee-url: https://app.codesee.io diff --git a/README.md b/README.md index 60b220b..0e340b7 100644 --- a/README.md +++ b/README.md @@ -4,8 +4,6 @@ ![deno compatibility](https://shield.deno.dev/deno/^1.37) [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/github-pipeline)](https://codecov.io/gh/fluent-ci-templates/github-pipeline) -[![CodeSee](https://codesee-docs.s3.amazonaws.com/badge.svg?)](https://app.codesee.io/maps/public/45528610-c67a-11ee-96b5-9da64a65e5f1) - A ready-to-use CI/CD Pipeline for uploading assets to github releases. ## ๐Ÿš€ Usage @@ -21,7 +19,16 @@ fluentci run github_pipeline Use as a [Dagger](https://dagger.io) Module: ```bash -dagger mod install github.com/fluent-ci-templates/github-pipeline@mod +dagger install github.com/fluent-ci-templates/github-pipeline@main +``` + +Call a function from the module: + +```bash +dagger call release-upload --src . \ + --tag v0.1.0 \ + --file demo_x86_64-unknown-linux-gnu.tar.gz \ + --token GH_TOKEN ``` ## Environment Variables @@ -53,7 +60,7 @@ releaseUpload( You can also use this pipeline programmatically: ```typescript -import { releaseUpload } from "https://pkg.fluentci.io/github_pipeline@v0.4.2/mod.ts"; +import { releaseUpload } from "https://pkg.fluentci.io/github_pipeline@v0.4.3/mod.ts"; await releaseUpload( ".", diff --git a/ci.ts b/ci.ts index 34d7ccf..4b65d75 100644 --- a/ci.ts +++ b/ci.ts @@ -1,3 +1,3 @@ -import { releaseUpload } from "https://pkg.fluentci.io/github_pipeline@v0.4.2/mod.ts"; +import { releaseUpload } from "https://pkg.fluentci.io/github_pipeline@v0.4.3/mod.ts"; await releaseUpload();