Browse and listen to thousands of radio stations across the globe right from your terminal ๐ŸŒŽ ๐Ÿ“ป ๐ŸŽตโœจ
radio rust tokio web-radio command-line-tool tui

ci: add flakestry publish workflow

Changed files
+34 -8910
.fluentci
.fluentci
.devcontainer
.fluentci
.github
workflows
.vscode
example
fixtures
src
.github
example
.fluentci
.devcontainer
.fluentci
.devcontainer
.fluentci
.github
workflows
.vscode
example
fixtures
src
.github
.vscode
example
fixtures
gen
src
.github
workflows
src
src
dagger
.github
-25
.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-25
.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-28
.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-88
.fluentci/.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Quick start: 12 - 13 - ```ts 14 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 15 - 16 - const { pipeline } = GitLab; 17 - 18 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 19 - ``` 20 - 21 - Or, if you want to use the predefined jobs: 22 - 23 - ```ts 24 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; 25 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 26 - 27 - const { fmt, lint, test } = GitLab; 28 - 29 - const const pipeline = new GitlabCI() 30 - .image("denoland/deno:alpine") 31 - .addJob("fmt", fmt) 32 - .addJob("lint", lint) 33 - .addJob("test", test); 34 - 35 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 36 - ``` 37 - 38 - It will generate the following `.gitlab-ci.yml` file: 39 - 40 - ```yaml 41 - # Do not edit this file directly. It is generated by Fluent GitLab CI 42 - 43 - image: denoland/deno:alpine 44 - 45 - fmt: 46 - image: denoland/deno:alpine 47 - script: 48 - - deno fmt --check 49 - 50 - lint: 51 - image: denoland/deno:alpine 52 - script: 53 - - deno lint 54 - 55 - test: 56 - image: denoland/deno:alpine 57 - script: 58 - - deno test 59 - ``` 60 - 61 - ## ๐Ÿงช Advanced Usage 62 - 63 - This package also provides a ready-to-use pipeline for 64 - [Dagger](https://dagger.io/), just run the following command on your Deno 65 - project: 66 - 67 - ```sh 68 - dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts 69 - ``` 70 - 71 - Or, if you want to use the predefined jobs: 72 - 73 - ```ts 74 - import Client, { connect } from "@dagger.io/dagger"; 75 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 76 - 77 - const { fmt, lint, test } = Dagger; 78 - 79 - function pipeline(src = ".") { 80 - connect(async (client: Client) => { 81 - await fmt(client, src); 82 - await lint(client, src); 83 - await test(client, src); 84 - }); 85 - } 86 - 87 - pipeline(); 88 - ```
-12
.fluentci/.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-68
.fluentci/.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", 9 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 10 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 11 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 12 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 13 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 14 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 15 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 16 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 17 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 18 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 19 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 20 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 21 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 22 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 23 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 26 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 27 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 28 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 29 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 30 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 31 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 32 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 33 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 34 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 35 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 36 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 37 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 38 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 39 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 40 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 41 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 42 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 43 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 44 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 45 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 46 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 47 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 49 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 50 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 51 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 52 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 53 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 54 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 55 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 56 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 57 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 58 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 59 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 60 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 61 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 62 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 63 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 64 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 65 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 66 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 67 - } 68 - }
-19
.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-28
.fluentci/.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", 6 - "url": "node:url", 7 - "readline": "node:readline", 8 - "process": "node:process", 9 - "path": "node:path", 10 - "os": "node:os", 11 - "fs": "node:fs", 12 - "crypto": "node:crypto" 13 - }, 14 - "scopes": { 15 - "https://esm.sh/v128/": { 16 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 17 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 18 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 19 - "execa": "https://esm.sh/v128/execa@7.1.1", 20 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 21 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 22 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 23 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 24 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 25 - "tar": "https://esm.sh/v128/tar@6.1.15" 26 - } 27 - } 28 - }
-4
.fluentci/.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-197
.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; 3 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 4 - import { existsSync } from "fs"; 5 - 6 - export enum Job { 7 - fmt = "fmt", 8 - lint = "lint", 9 - test = "test", 10 - deploy = "deploy", 11 - codecov = "codecov", 12 - } 13 - 14 - const baseCtr = (client: Client, pipeline: string) => { 15 - if (existsSync("devbox.json")) { 16 - return withDevbox( 17 - client 18 - .pipeline(pipeline) 19 - .container() 20 - .from("alpine:latest") 21 - .withExec(["apk", "update"]) 22 - .withExec(["apk", "add", "bash", "curl"]) 23 - .withMountedCache("/nix", client.cacheVolume("nix")) 24 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 25 - ); 26 - } 27 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 28 - }; 29 - 30 - export const lint = async (client: Client, src = ".") => { 31 - const context = client.host().directory(src); 32 - let command = ["deno", "lint"]; 33 - 34 - if (existsSync("devbox.json")) { 35 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 36 - } 37 - 38 - const ctr = baseCtr(client, Job.lint) 39 - .withDirectory("/app", context, { 40 - exclude: [".git", ".devbox", ".fluentci"], 41 - }) 42 - .withWorkdir("/app") 43 - .withExec(command); 44 - 45 - const result = await ctr.stdout(); 46 - 47 - console.log(result); 48 - }; 49 - 50 - export const fmt = async (client: Client, src = ".") => { 51 - const context = client.host().directory(src); 52 - let command = ["deno", "fmt"]; 53 - 54 - if (existsSync("devbox.json")) { 55 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 56 - } 57 - 58 - const ctr = baseCtr(client, Job.fmt) 59 - .withDirectory("/app", context, { 60 - exclude: [".git", ".devbox", ".fluentci"], 61 - }) 62 - .withWorkdir("/app") 63 - .withExec(command); 64 - 65 - const result = await ctr.stdout(); 66 - 67 - console.log(result); 68 - }; 69 - 70 - export const test = async ( 71 - client: Client, 72 - src = ".", 73 - options: { ignore: string[] } = { ignore: [] } 74 - ) => { 75 - const context = client.host().directory(src); 76 - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; 77 - 78 - if (options.ignore.length > 0) { 79 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 80 - } 81 - 82 - if (existsSync("devbox.json")) { 83 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 84 - } 85 - 86 - const ctr = baseCtr(client, Job.test) 87 - .from("denoland/deno:alpine") 88 - .withDirectory("/app", context, { 89 - exclude: [".git", ".devbox", ".fluentci"], 90 - }) 91 - .withWorkdir("/app") 92 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 93 - .withExec(command) 94 - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); 95 - 96 - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); 97 - 98 - const result = await ctr.stdout(); 99 - 100 - console.log(result); 101 - }; 102 - 103 - export const deploy = async (client: Client, src = ".") => { 104 - const context = client.host().directory(src); 105 - let installDeployCtl = [ 106 - "deno", 107 - "install", 108 - "--allow-all", 109 - "--no-check", 110 - "-r", 111 - "-f", 112 - "https://deno.land/x/deploy/deployctl.ts", 113 - ]; 114 - const project = Deno.env.get("DENO_PROJECT"); 115 - const noStatic = Deno.env.get("NO_STATIC"); 116 - const exclude = Deno.env.get("EXCLUDE"); 117 - 118 - let command = ["deployctl", "deploy"]; 119 - 120 - if (noStatic) { 121 - command = command.concat(["--no-static"]); 122 - } 123 - 124 - if (exclude) { 125 - command = command.concat([`--exclude=${exclude}`]); 126 - } 127 - 128 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 129 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 130 - } 131 - 132 - if (!project) { 133 - throw new Error("DENO_PROJECT environment variable is not set"); 134 - } 135 - 136 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 137 - command = command.concat([`--project=${project}`, script]); 138 - 139 - if (existsSync("devbox.json")) { 140 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 141 - installDeployCtl = [ 142 - "sh", 143 - "-c", 144 - `devbox run -- ${installDeployCtl.join(" ")}`, 145 - ]; 146 - } 147 - 148 - const ctr = baseCtr(client, Job.deploy) 149 - .from("denoland/deno:alpine") 150 - .withDirectory("/app", context, { 151 - exclude: [".git", ".devbox", ".fluentci"], 152 - }) 153 - .withWorkdir("/app") 154 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 155 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 156 - .withEnvVariable( 157 - "DENO_MAIN_SCRIPT", 158 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 159 - ) 160 - .withExec(installDeployCtl) 161 - .withExec(command); 162 - 163 - const result = await ctr.stdout(); 164 - 165 - console.log(result); 166 - }; 167 - 168 - export type JobExec = ( 169 - client: Client, 170 - src?: string 171 - ) => 172 - | Promise<void> 173 - | (( 174 - client: Client, 175 - src?: string, 176 - options?: { 177 - ignore: string[]; 178 - } 179 - ) => Promise<void>); 180 - 181 - export const codecov = upload; 182 - 183 - export const runnableJobs: Record<Job, JobExec> = { 184 - [Job.fmt]: fmt, 185 - [Job.lint]: lint, 186 - [Job.test]: test, 187 - [Job.deploy]: deploy, 188 - [Job.codecov]: upload, 189 - }; 190 - 191 - export const jobDescriptions: Record<Job, string> = { 192 - [Job.fmt]: "Format your code", 193 - [Job.lint]: "Lint your code", 194 - [Job.test]: "Run your tests", 195 - [Job.deploy]: "Deploy your code to Deno Deploy", 196 - [Job.codecov]: "Upload your code coverage to Codecov", 197 - };
-21
.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-52
.fluentci/.fluentci/.fluentci/src/github/config.ts
··· 1 - import { JobSpec, Workflow } from "fluent_github_actions"; 2 - 3 - export function generateYaml() { 4 - const workflow = new Workflow("Codecov"); 5 - 6 - const push = { 7 - branches: ["main"], 8 - }; 9 - 10 - const setupDagger = `\ 11 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - sudo mv bin/dagger /usr/local/bin 13 - dagger version`; 14 - 15 - const tests: JobSpec = { 16 - "runs-on": "ubuntu-latest", 17 - steps: [ 18 - { 19 - uses: "actions/checkout@v2", 20 - }, 21 - { 22 - uses: "denoland/setup-deno@v1", 23 - with: { 24 - "deno-version": "v1.37", 25 - }, 26 - }, 27 - { 28 - name: "Setup Fluent CI CLI", 29 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - }, 31 - { 32 - name: "Setup Dagger", 33 - run: setupDagger, 34 - }, 35 - { 36 - name: "List Jobs", 37 - run: "fluentci ls .", 38 - }, 39 - { 40 - name: "Run Dagger Pipelines", 41 - run: "dagger run fluentci . fmt lint test codecov", 42 - env: { 43 - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", 44 - }, 45 - }, 46 - ], 47 - }; 48 - 49 - workflow.on({ push }).jobs({ tests }); 50 - 51 - workflow.save(".github/workflows/ci.yml"); 52 - }
-3
.fluentci/.fluentci/.fluentci/src/github/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml();
-4
.fluentci/.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Codecov 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: List Jobs 24 - run: fluentci ls . 25 - - name: Run Dagger Pipelines 26 - run: dagger run fluentci . fmt lint test codecov 27 - env: 28 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-2
.fluentci/.fluentci/.gitignore
··· 1 - coverage/ 2 - coverage.lcov
-3
.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-69
.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use CI/CD Pipeline for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Run the following command: 12 - 13 - ```bash 14 - dagger run fluentci deno_pipeline 15 - ``` 16 - 17 - Or, if you want to use it as a template: 18 - 19 - ```bash 20 - fluentci init -t deno 21 - ``` 22 - 23 - This will create a `.fluentci` folder in your project. 24 - 25 - Now you can run the pipeline with: 26 - 27 - ```bash 28 - dagger run fluentci . 29 - ``` 30 - 31 - ## Environment variables (Deno Deploy) 32 - 33 - | Variable | Description | Default | 34 - | ----------------- | ------------------------- | ---------- | 35 - | DENO_PROJECT | Your project name | | 36 - | NO_STATIC | Disable static assets | `false` | 37 - | EXCLUDE | Exclude files from deploy | | 38 - | DENO_DEPLOY_TOKEN | Your Deno Deploy token | | 39 - | DENO_MAIN_SCRIPT | Your main script | `main.tsx` | 40 - 41 - ## Jobs 42 - 43 - | Job | Description | Options | 44 - | ------ | ------------------------------ | ---------------------- | 45 - | fmt | Format your code | | 46 - | lint | Lint your code | | 47 - | test | Run your tests | `{ ignore: string[] }` | 48 - | deploy | Deploy your app to Deno Deploy | | 49 - 50 - ## Programmatic usage 51 - 52 - You can also use this pipeline programmatically: 53 - 54 - ```ts 55 - import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; 56 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 57 - 58 - const { fmt, lint, test } = Dagger; 59 - 60 - function pipeline(src = ".") { 61 - connect(async (client: Client) => { 62 - await fmt(client, src); 63 - await lint(client, src); 64 - await test(client, src); 65 - }); 66 - } 67 - 68 - pipeline(); 69 - ```
-12
.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-68
.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "3", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", 9 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 10 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 11 - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", 12 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 13 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 14 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 15 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 16 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 17 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 18 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 19 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 20 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 21 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 22 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 23 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 26 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 27 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 28 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 29 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 30 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 31 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 32 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 33 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 34 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 35 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 36 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 37 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 38 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 39 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 40 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 41 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 42 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 43 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 44 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 45 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 46 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 47 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 49 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 50 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 51 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 52 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 53 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 54 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 55 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 56 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 57 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 58 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 59 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 60 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 61 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 62 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 63 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 64 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 65 - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 66 - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" 67 - } 68 - }
-25
.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-25
.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-28
.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-88
.fluentci/.fluentci/example/.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Quick start: 12 - 13 - ```ts 14 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 15 - 16 - const { pipeline } = GitLab; 17 - 18 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 19 - ``` 20 - 21 - Or, if you want to use the predefined jobs: 22 - 23 - ```ts 24 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; 25 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 26 - 27 - const { fmt, lint, test } = GitLab; 28 - 29 - const const pipeline = new GitlabCI() 30 - .image("denoland/deno:alpine") 31 - .addJob("fmt", fmt) 32 - .addJob("lint", lint) 33 - .addJob("test", test); 34 - 35 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 36 - ``` 37 - 38 - It will generate the following `.gitlab-ci.yml` file: 39 - 40 - ```yaml 41 - # Do not edit this file directly. It is generated by Fluent GitLab CI 42 - 43 - image: denoland/deno:alpine 44 - 45 - fmt: 46 - image: denoland/deno:alpine 47 - script: 48 - - deno fmt --check 49 - 50 - lint: 51 - image: denoland/deno:alpine 52 - script: 53 - - deno lint 54 - 55 - test: 56 - image: denoland/deno:alpine 57 - script: 58 - - deno test 59 - ``` 60 - 61 - ## ๐Ÿงช Advanced Usage 62 - 63 - This package also provides a ready-to-use pipeline for 64 - [Dagger](https://dagger.io/), just run the following command on your Deno 65 - project: 66 - 67 - ```sh 68 - dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts 69 - ``` 70 - 71 - Or, if you want to use the predefined jobs: 72 - 73 - ```ts 74 - import Client, { connect } from "@dagger.io/dagger"; 75 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 76 - 77 - const { fmt, lint, test } = Dagger; 78 - 79 - function pipeline(src = ".") { 80 - connect(async (client: Client) => { 81 - await fmt(client, src); 82 - await lint(client, src); 83 - await test(client, src); 84 - }); 85 - } 86 - 87 - pipeline(); 88 - ```
-12
.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-66
.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 9 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 10 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 11 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 12 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 13 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 14 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 15 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 16 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 17 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 18 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 19 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 20 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 21 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 22 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 23 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 25 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 26 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 27 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 28 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 29 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 30 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 31 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 32 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 33 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 34 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 35 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 36 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 37 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 38 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 39 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 40 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 41 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 42 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 43 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 44 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 45 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 46 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 47 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 48 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 49 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 50 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 51 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 52 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 53 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 54 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 55 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 56 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 57 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 58 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 59 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 60 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 61 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 62 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 63 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 64 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 65 - } 66 - }
-19
.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-27
.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "url": "node:url", 6 - "readline": "node:readline", 7 - "process": "node:process", 8 - "path": "node:path", 9 - "os": "node:os", 10 - "fs": "node:fs", 11 - "crypto": "node:crypto" 12 - }, 13 - "scopes": { 14 - "https://esm.sh/v128/": { 15 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 16 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 17 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 18 - "execa": "https://esm.sh/v128/execa@7.1.1", 19 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 20 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 21 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 22 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 23 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 24 - "tar": "https://esm.sh/v128/tar@6.1.15" 25 - } 26 - } 27 - }
-4
.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-111
.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { existsSync } from "fs"; 3 - 4 - export enum Job { 5 - fmt = "fmt", 6 - lint = "lint", 7 - test = "test", 8 - } 9 - 10 - export const lint = async (client: Client, src = ".") => { 11 - const context = client.host().directory(src); 12 - let command = ["deno", "lint"]; 13 - 14 - if (existsSync("devbox.json")) { 15 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 16 - } 17 - 18 - const ctr = client 19 - .pipeline(Job.lint) 20 - .container() 21 - .from("denoland/deno:alpine") 22 - .withDirectory("/app", context, { 23 - exclude: [".git", ".devbox", ".fluentci"], 24 - }) 25 - .withWorkdir("/app") 26 - .withExec(command); 27 - 28 - const result = await ctr.stdout(); 29 - 30 - console.log(result); 31 - }; 32 - 33 - export const fmt = async (client: Client, src = ".") => { 34 - const context = client.host().directory(src); 35 - let command = ["deno", "fmt"]; 36 - 37 - if (existsSync("devbox.json")) { 38 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 39 - } 40 - 41 - const ctr = client 42 - .pipeline(Job.fmt) 43 - .container() 44 - .from("denoland/deno:alpine") 45 - .withDirectory("/app", context, { 46 - exclude: [".git", ".devbox", ".fluentci"], 47 - }) 48 - .withWorkdir("/app") 49 - .withExec(command); 50 - 51 - const result = await ctr.stdout(); 52 - 53 - console.log(result); 54 - }; 55 - 56 - export const test = async ( 57 - client: Client, 58 - src = ".", 59 - options: { ignore: string[] } = { ignore: [] } 60 - ) => { 61 - const context = client.host().directory(src); 62 - let command = ["deno", "test", "-A", "--lock-write"]; 63 - 64 - if (options.ignore.length > 0) { 65 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 66 - } 67 - 68 - if (existsSync("devbox.json")) { 69 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 70 - } 71 - 72 - const ctr = client 73 - .pipeline(Job.test) 74 - .container() 75 - .from("denoland/deno:alpine") 76 - .withDirectory("/app", context, { 77 - exclude: [".git", ".devbox", ".fluentci"], 78 - }) 79 - .withWorkdir("/app") 80 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 81 - .withExec(command); 82 - 83 - const result = await ctr.stdout(); 84 - 85 - console.log(result); 86 - }; 87 - 88 - export type JobExec = ( 89 - client: Client, 90 - src?: string 91 - ) => 92 - | Promise<void> 93 - | (( 94 - client: Client, 95 - src?: string, 96 - options?: { 97 - ignore: string[]; 98 - } 99 - ) => Promise<void>); 100 - 101 - export const runnableJobs: Record<Job, JobExec> = { 102 - [Job.fmt]: fmt, 103 - [Job.lint]: lint, 104 - [Job.test]: test, 105 - }; 106 - 107 - export const jobDescriptions: Record<Job, string> = { 108 - [Job.fmt]: "Format your code", 109 - [Job.lint]: "Lint your code", 110 - [Job.test]: "Run your tests", 111 - };
-21
.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-4
.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/.fluentci/example/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/.fluentci/example/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-58
.fluentci/.fluentci/example/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use CI/CD Pipeline for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Run the following command: 12 - 13 - ```bash 14 - dagger run fluentci deno_pipeline 15 - ``` 16 - 17 - Or, if you want to use it as a template: 18 - 19 - ```bash 20 - fluentci init -t deno 21 - ``` 22 - 23 - This will create a `.fluentci` folder in your project. 24 - 25 - Now you can run the pipeline with: 26 - 27 - ```bash 28 - dagger run fluentci . 29 - ``` 30 - 31 - ## Jobs 32 - 33 - | Job | Description | Options | 34 - | ----- | ---------------- | ---------------------- | 35 - | fmt | Format your code | | 36 - | lint | Lint your code | | 37 - | test | Run your tests | `{ ignore: string[] }` | 38 - 39 - ## Programmatic usage 40 - 41 - You can also use this pipeline programmatically: 42 - 43 - ```ts 44 - import Client, { connect } from "@dagger.io/dagger"; 45 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 46 - 47 - const { fmt, lint, test } = Dagger; 48 - 49 - function pipeline(src = ".") { 50 - connect(async (client: Client) => { 51 - await fmt(client, src); 52 - await lint(client, src); 53 - await test(client, src); 54 - }); 55 - } 56 - 57 - pipeline(); 58 - ```
-12
.fluentci/.fluentci/example/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/.fluentci/example/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-67
.fluentci/.fluentci/example/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 9 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 10 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 11 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 12 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 13 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 14 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 15 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 16 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 17 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 18 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 19 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 20 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 21 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 22 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 23 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 26 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 27 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 28 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 29 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 30 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 31 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 32 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 33 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 34 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 35 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 36 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 37 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 38 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 39 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 40 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 41 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 42 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 43 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 44 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 45 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 46 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 47 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 49 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 50 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 51 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 52 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 53 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 54 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 55 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 56 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 57 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 58 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 59 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 60 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 61 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 62 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 63 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 64 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 65 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 66 - } 67 - }
-19
.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/.fluentci/example/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/.fluentci/example/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-27
.fluentci/.fluentci/example/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "url": "node:url", 6 - "readline": "node:readline", 7 - "process": "node:process", 8 - "path": "node:path", 9 - "os": "node:os", 10 - "fs": "node:fs", 11 - "crypto": "node:crypto" 12 - }, 13 - "scopes": { 14 - "https://esm.sh/v128/": { 15 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 16 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 17 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 18 - "execa": "https://esm.sh/v128/execa@7.1.1", 19 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 20 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 21 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 22 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 23 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 24 - "tar": "https://esm.sh/v128/tar@6.1.15" 25 - } 26 - } 27 - }
-4
.fluentci/.fluentci/example/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-188
.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 3 - import { existsSync } from "fs"; 4 - 5 - export enum Job { 6 - fmt = "fmt", 7 - lint = "lint", 8 - test = "test", 9 - deploy = "deploy", 10 - } 11 - 12 - const baseCtr = (client: Client, pipeline: string) => { 13 - if (existsSync("devbox.json")) { 14 - return withDevbox( 15 - client 16 - .pipeline(pipeline) 17 - .container() 18 - .from("alpine:latest") 19 - .withExec(["apk", "update"]) 20 - .withExec(["apk", "add", "bash", "curl"]) 21 - .withMountedCache("/nix", client.cacheVolume("nix")) 22 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 23 - ); 24 - } 25 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 26 - }; 27 - 28 - export const lint = async (client: Client, src = ".") => { 29 - const context = client.host().directory(src); 30 - let command = ["deno", "lint"]; 31 - 32 - if (existsSync("devbox.json")) { 33 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 34 - } 35 - 36 - const ctr = baseCtr(client, Job.lint) 37 - .withDirectory("/app", context, { 38 - exclude: [".git", ".devbox", ".fluentci"], 39 - }) 40 - .withWorkdir("/app") 41 - .withExec(command); 42 - 43 - const result = await ctr.stdout(); 44 - 45 - console.log(result); 46 - }; 47 - 48 - export const fmt = async (client: Client, src = ".") => { 49 - const context = client.host().directory(src); 50 - let command = ["deno", "fmt"]; 51 - 52 - if (existsSync("devbox.json")) { 53 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 54 - } 55 - 56 - const ctr = baseCtr(client, Job.fmt) 57 - .withDirectory("/app", context, { 58 - exclude: [".git", ".devbox", ".fluentci"], 59 - }) 60 - .withWorkdir("/app") 61 - .withExec(command); 62 - 63 - const result = await ctr.stdout(); 64 - 65 - console.log(result); 66 - }; 67 - 68 - export const test = async ( 69 - client: Client, 70 - src = ".", 71 - options: { ignore: string[] } = { ignore: [] } 72 - ) => { 73 - const context = client.host().directory(src); 74 - let command = ["deno", "test", "-A", "--lock-write"]; 75 - 76 - if (options.ignore.length > 0) { 77 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 78 - } 79 - 80 - if (existsSync("devbox.json")) { 81 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 82 - } 83 - 84 - const ctr = baseCtr(client, Job.test) 85 - .from("denoland/deno:alpine") 86 - .withDirectory("/app", context, { 87 - exclude: [".git", ".devbox", ".fluentci"], 88 - }) 89 - .withWorkdir("/app") 90 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 91 - .withExec(command); 92 - 93 - const result = await ctr.stdout(); 94 - 95 - console.log(result); 96 - }; 97 - 98 - export const deploy = async (client: Client, src = ".") => { 99 - const context = client.host().directory(src); 100 - let installDeployCtl = [ 101 - "deno", 102 - "install", 103 - "--allow-all", 104 - "--no-check", 105 - "-r", 106 - "-f", 107 - "https://deno.land/x/deploy/deployctl.ts", 108 - ]; 109 - const project = Deno.env.get("DENO_PROJECT"); 110 - const noStatic = Deno.env.get("NO_STATIC"); 111 - const exclude = Deno.env.get("EXCLUDE"); 112 - 113 - let command = ["deployctl", "deploy"]; 114 - 115 - if (noStatic) { 116 - command = command.concat(["--no-static"]); 117 - } 118 - 119 - if (exclude) { 120 - command = command.concat([`--exclude=${exclude}`]); 121 - } 122 - 123 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 124 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 125 - } 126 - 127 - if (!project) { 128 - throw new Error("DENO_PROJECT environment variable is not set"); 129 - } 130 - 131 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 132 - command = command.concat([`--project=${project}`, script]); 133 - 134 - if (existsSync("devbox.json")) { 135 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 136 - installDeployCtl = [ 137 - "sh", 138 - "-c", 139 - `devbox run -- ${installDeployCtl.join(" ")}`, 140 - ]; 141 - } 142 - 143 - const ctr = baseCtr(client, Job.deploy) 144 - .from("denoland/deno:alpine") 145 - .withDirectory("/app", context, { 146 - exclude: [".git", ".devbox", ".fluentci"], 147 - }) 148 - .withWorkdir("/app") 149 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 150 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 151 - .withEnvVariable( 152 - "DENO_MAIN_SCRIPT", 153 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 154 - ) 155 - .withExec(installDeployCtl) 156 - .withExec(command); 157 - 158 - const result = await ctr.stdout(); 159 - 160 - console.log(result); 161 - }; 162 - 163 - export type JobExec = ( 164 - client: Client, 165 - src?: string 166 - ) => 167 - | Promise<void> 168 - | (( 169 - client: Client, 170 - src?: string, 171 - options?: { 172 - ignore: string[]; 173 - } 174 - ) => Promise<void>); 175 - 176 - export const runnableJobs: Record<Job, JobExec> = { 177 - [Job.fmt]: fmt, 178 - [Job.lint]: lint, 179 - [Job.test]: test, 180 - [Job.deploy]: deploy, 181 - }; 182 - 183 - export const jobDescriptions: Record<Job, string> = { 184 - [Job.fmt]: "Format your code", 185 - [Job.lint]: "Lint your code", 186 - [Job.test]: "Run your tests", 187 - [Job.deploy]: "Deploy your code to Deno Deploy", 188 - };
-21
.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-4
.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-3
.fluentci/.fluentci/example/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-16
.fluentci/.fluentci/example/README.md
··· 1 - # Deno Pipeline Example 2 - 3 - This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). 4 - 5 - ## ๐Ÿš€ Usage 6 - 7 - You need to set the following environment variables: 8 - 9 - - `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. 10 - - `DENO_PROJECT`: Your project name. 11 - 12 - Then, run the following command: 13 - 14 - ```bash 15 - dagger run fluentci . fmt lint deploy 16 - ```
-20
.fluentci/.fluentci/example/main.tsx
··· 1 - /** @jsx h */ 2 - import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; 3 - import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; 4 - 5 - const handler = (req: Request) => 6 - html({ 7 - title: "Hello World!", 8 - styles: [ 9 - "html, body { margin: 0; height: 100%; }", 10 - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", 11 - ], 12 - body: ( 13 - <body> 14 - <img width="64" src="https://dash.deno.com/assets/logo.svg" /> 15 - <h1>Hello Patricia!</h1> 16 - </body> 17 - ), 18 - }); 19 - 20 - serve(handler);
-19
.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-28
.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", 6 - "url": "node:url", 7 - "readline": "node:readline", 8 - "process": "node:process", 9 - "path": "node:path", 10 - "os": "node:os", 11 - "fs": "node:fs", 12 - "crypto": "node:crypto" 13 - }, 14 - "scopes": { 15 - "https://esm.sh/v128/": { 16 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 17 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 18 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 19 - "execa": "https://esm.sh/v128/execa@7.1.1", 20 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 21 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 22 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 23 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 24 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 25 - "tar": "https://esm.sh/v128/tar@6.1.15" 26 - } 27 - } 28 - }
-4
.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-197
.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; 3 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 4 - import { existsSync } from "fs"; 5 - 6 - export enum Job { 7 - fmt = "fmt", 8 - lint = "lint", 9 - test = "test", 10 - deploy = "deploy", 11 - codecov = "codecov", 12 - } 13 - 14 - const baseCtr = (client: Client, pipeline: string) => { 15 - if (existsSync("devbox.json")) { 16 - return withDevbox( 17 - client 18 - .pipeline(pipeline) 19 - .container() 20 - .from("alpine:latest") 21 - .withExec(["apk", "update"]) 22 - .withExec(["apk", "add", "bash", "curl"]) 23 - .withMountedCache("/nix", client.cacheVolume("nix")) 24 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 25 - ); 26 - } 27 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 28 - }; 29 - 30 - export const lint = async (client: Client, src = ".") => { 31 - const context = client.host().directory(src); 32 - let command = ["deno", "lint"]; 33 - 34 - if (existsSync("devbox.json")) { 35 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 36 - } 37 - 38 - const ctr = baseCtr(client, Job.lint) 39 - .withDirectory("/app", context, { 40 - exclude: [".git", ".devbox", ".fluentci"], 41 - }) 42 - .withWorkdir("/app") 43 - .withExec(command); 44 - 45 - const result = await ctr.stdout(); 46 - 47 - console.log(result); 48 - }; 49 - 50 - export const fmt = async (client: Client, src = ".") => { 51 - const context = client.host().directory(src); 52 - let command = ["deno", "fmt"]; 53 - 54 - if (existsSync("devbox.json")) { 55 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 56 - } 57 - 58 - const ctr = baseCtr(client, Job.fmt) 59 - .withDirectory("/app", context, { 60 - exclude: [".git", ".devbox", ".fluentci"], 61 - }) 62 - .withWorkdir("/app") 63 - .withExec(command); 64 - 65 - const result = await ctr.stdout(); 66 - 67 - console.log(result); 68 - }; 69 - 70 - export const test = async ( 71 - client: Client, 72 - src = ".", 73 - options: { ignore: string[] } = { ignore: [] } 74 - ) => { 75 - const context = client.host().directory(src); 76 - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; 77 - 78 - if (options.ignore.length > 0) { 79 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 80 - } 81 - 82 - if (existsSync("devbox.json")) { 83 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 84 - } 85 - 86 - const ctr = baseCtr(client, Job.test) 87 - .from("denoland/deno:alpine") 88 - .withDirectory("/app", context, { 89 - exclude: [".git", ".devbox", ".fluentci"], 90 - }) 91 - .withWorkdir("/app") 92 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 93 - .withExec(command) 94 - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); 95 - 96 - const result = await ctr.stdout(); 97 - 98 - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); 99 - 100 - console.log(result); 101 - }; 102 - 103 - export const deploy = async (client: Client, src = ".") => { 104 - const context = client.host().directory(src); 105 - let installDeployCtl = [ 106 - "deno", 107 - "install", 108 - "--allow-all", 109 - "--no-check", 110 - "-r", 111 - "-f", 112 - "https://deno.land/x/deploy/deployctl.ts", 113 - ]; 114 - const project = Deno.env.get("DENO_PROJECT"); 115 - const noStatic = Deno.env.get("NO_STATIC"); 116 - const exclude = Deno.env.get("EXCLUDE"); 117 - 118 - let command = ["deployctl", "deploy"]; 119 - 120 - if (noStatic) { 121 - command = command.concat(["--no-static"]); 122 - } 123 - 124 - if (exclude) { 125 - command = command.concat([`--exclude=${exclude}`]); 126 - } 127 - 128 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 129 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 130 - } 131 - 132 - if (!project) { 133 - throw new Error("DENO_PROJECT environment variable is not set"); 134 - } 135 - 136 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 137 - command = command.concat([`--project=${project}`, script]); 138 - 139 - if (existsSync("devbox.json")) { 140 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 141 - installDeployCtl = [ 142 - "sh", 143 - "-c", 144 - `devbox run -- ${installDeployCtl.join(" ")}`, 145 - ]; 146 - } 147 - 148 - const ctr = baseCtr(client, Job.deploy) 149 - .from("denoland/deno:alpine") 150 - .withDirectory("/app", context, { 151 - exclude: [".git", ".devbox", ".fluentci"], 152 - }) 153 - .withWorkdir("/app") 154 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 155 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 156 - .withEnvVariable( 157 - "DENO_MAIN_SCRIPT", 158 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 159 - ) 160 - .withExec(installDeployCtl) 161 - .withExec(command); 162 - 163 - const result = await ctr.stdout(); 164 - 165 - console.log(result); 166 - }; 167 - 168 - export type JobExec = ( 169 - client: Client, 170 - src?: string 171 - ) => 172 - | Promise<void> 173 - | (( 174 - client: Client, 175 - src?: string, 176 - options?: { 177 - ignore: string[]; 178 - } 179 - ) => Promise<void>); 180 - 181 - export const codecov = upload; 182 - 183 - export const runnableJobs: Record<Job, JobExec> = { 184 - [Job.fmt]: fmt, 185 - [Job.lint]: lint, 186 - [Job.test]: test, 187 - [Job.deploy]: deploy, 188 - [Job.codecov]: upload, 189 - }; 190 - 191 - export const jobDescriptions: Record<Job, string> = { 192 - [Job.fmt]: "Format your code", 193 - [Job.lint]: "Lint your code", 194 - [Job.test]: "Run your tests", 195 - [Job.deploy]: "Deploy your code to Deno Deploy", 196 - [Job.codecov]: "Upload your code coverage to Codecov", 197 - };
-21
.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-52
.fluentci/.fluentci/src/github/config.ts
··· 1 - import { JobSpec, Workflow } from "fluent_github_actions"; 2 - 3 - export function generateYaml() { 4 - const workflow = new Workflow("Codecov"); 5 - 6 - const push = { 7 - branches: ["main"], 8 - }; 9 - 10 - const setupDagger = `\ 11 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - sudo mv bin/dagger /usr/local/bin 13 - dagger version`; 14 - 15 - const tests: JobSpec = { 16 - "runs-on": "ubuntu-latest", 17 - steps: [ 18 - { 19 - uses: "actions/checkout@v2", 20 - }, 21 - { 22 - uses: "denoland/setup-deno@v1", 23 - with: { 24 - "deno-version": "v1.37", 25 - }, 26 - }, 27 - { 28 - name: "Setup Fluent CI CLI", 29 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - }, 31 - { 32 - name: "Setup Dagger", 33 - run: setupDagger, 34 - }, 35 - { 36 - name: "Run Dagger Pipelines", 37 - run: "dagger run fluentci . fmt lint test", 38 - }, 39 - { 40 - name: "Upload to Codecov", 41 - run: "dagger run fluentci codecov_pipeline", 42 - env: { 43 - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", 44 - }, 45 - }, 46 - ], 47 - }; 48 - 49 - workflow.on({ push }).jobs({ tests }); 50 - 51 - workflow.save(".github/workflows/ci.yml"); 52 - }
-3
.fluentci/.fluentci/src/github/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml();
-4
.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/.github/workflows/ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Codecov 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Dagger Pipelines 24 - run: dagger run fluentci . fmt lint test 25 - - name: Upload to Codecov 26 - run: dagger run fluentci codecov_pipeline 27 - env: 28 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-25
.fluentci/.github/workflows/example.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 2 - 3 - name: Example 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Dagger Pipelines 24 - run: dagger run deno run -A ../src/dagger/runner.ts 25 - working-directory: example
-23
.fluentci/.github/workflows/zenith.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 2 - 3 - name: Zenith Example 4 - on: 5 - push: 6 - branches: 7 - - zenith 8 - 9 - jobs: 10 - tests: 11 - runs-on: ubuntu-latest 12 - steps: 13 - - uses: actions/checkout@v2 14 - - name: Setup Dagger Zenith 15 - run: | 16 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 17 - sudo mv bin/dagger /usr/local/bin 18 - dagger version 19 - - name: Run Dagger Pipelines 20 - run: | 21 - dagger query --doc test.gql 22 - dagger query --doc build.gql 23 - working-directory: example
-25
.fluentci/example/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-25
.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-25
.fluentci/example/.fluentci/.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-28
.fluentci/example/.fluentci/.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/example/.fluentci/.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/example/.fluentci/.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/example/.fluentci/.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/example/.fluentci/.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-88
.fluentci/example/.fluentci/.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Quick start: 12 - 13 - ```ts 14 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 15 - 16 - const { pipeline } = GitLab; 17 - 18 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 19 - ``` 20 - 21 - Or, if you want to use the predefined jobs: 22 - 23 - ```ts 24 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; 25 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 26 - 27 - const { fmt, lint, test } = GitLab; 28 - 29 - const const pipeline = new GitlabCI() 30 - .image("denoland/deno:alpine") 31 - .addJob("fmt", fmt) 32 - .addJob("lint", lint) 33 - .addJob("test", test); 34 - 35 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 36 - ``` 37 - 38 - It will generate the following `.gitlab-ci.yml` file: 39 - 40 - ```yaml 41 - # Do not edit this file directly. It is generated by Fluent GitLab CI 42 - 43 - image: denoland/deno:alpine 44 - 45 - fmt: 46 - image: denoland/deno:alpine 47 - script: 48 - - deno fmt --check 49 - 50 - lint: 51 - image: denoland/deno:alpine 52 - script: 53 - - deno lint 54 - 55 - test: 56 - image: denoland/deno:alpine 57 - script: 58 - - deno test 59 - ``` 60 - 61 - ## ๐Ÿงช Advanced Usage 62 - 63 - This package also provides a ready-to-use pipeline for 64 - [Dagger](https://dagger.io/), just run the following command on your Deno 65 - project: 66 - 67 - ```sh 68 - dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts 69 - ``` 70 - 71 - Or, if you want to use the predefined jobs: 72 - 73 - ```ts 74 - import Client, { connect } from "@dagger.io/dagger"; 75 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 76 - 77 - const { fmt, lint, test } = Dagger; 78 - 79 - function pipeline(src = ".") { 80 - connect(async (client: Client) => { 81 - await fmt(client, src); 82 - await lint(client, src); 83 - await test(client, src); 84 - }); 85 - } 86 - 87 - pipeline(); 88 - ```
-12
.fluentci/example/.fluentci/.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/example/.fluentci/.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-68
.fluentci/example/.fluentci/.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts": "e980479e0bcd759773286145f3345ce7e1662c7d6734bfc4bbf8e6bfc93b974e", 9 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 10 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 11 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 12 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 13 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 14 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 15 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 16 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 17 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 18 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 19 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 20 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 21 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 22 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 23 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 26 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 27 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 28 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 29 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 30 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 31 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 32 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 33 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 34 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 35 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 36 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 37 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 38 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 39 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 40 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 41 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 42 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 43 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 44 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 45 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 46 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 47 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 49 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 50 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 51 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 52 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 53 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 54 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 55 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 56 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 57 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 58 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 59 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 60 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 61 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 62 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 63 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 64 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 65 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 66 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 67 - } 68 - }
-19
.fluentci/example/.fluentci/.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/example/.fluentci/.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/example/.fluentci/.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-28
.fluentci/example/.fluentci/.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", 6 - "url": "node:url", 7 - "readline": "node:readline", 8 - "process": "node:process", 9 - "path": "node:path", 10 - "os": "node:os", 11 - "fs": "node:fs", 12 - "crypto": "node:crypto" 13 - }, 14 - "scopes": { 15 - "https://esm.sh/v128/": { 16 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 17 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 18 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 19 - "execa": "https://esm.sh/v128/execa@7.1.1", 20 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 21 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 22 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 23 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 24 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 25 - "tar": "https://esm.sh/v128/tar@6.1.15" 26 - } 27 - } 28 - }
-4
.fluentci/example/.fluentci/.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-197
.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.0/src/dagger/jobs.ts"; 3 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 4 - import { existsSync } from "fs"; 5 - 6 - export enum Job { 7 - fmt = "fmt", 8 - lint = "lint", 9 - test = "test", 10 - deploy = "deploy", 11 - codecov = "codecov", 12 - } 13 - 14 - const baseCtr = (client: Client, pipeline: string) => { 15 - if (existsSync("devbox.json")) { 16 - return withDevbox( 17 - client 18 - .pipeline(pipeline) 19 - .container() 20 - .from("alpine:latest") 21 - .withExec(["apk", "update"]) 22 - .withExec(["apk", "add", "bash", "curl"]) 23 - .withMountedCache("/nix", client.cacheVolume("nix")) 24 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 25 - ); 26 - } 27 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 28 - }; 29 - 30 - export const lint = async (client: Client, src = ".") => { 31 - const context = client.host().directory(src); 32 - let command = ["deno", "lint"]; 33 - 34 - if (existsSync("devbox.json")) { 35 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 36 - } 37 - 38 - const ctr = baseCtr(client, Job.lint) 39 - .withDirectory("/app", context, { 40 - exclude: [".git", ".devbox", ".fluentci"], 41 - }) 42 - .withWorkdir("/app") 43 - .withExec(command); 44 - 45 - const result = await ctr.stdout(); 46 - 47 - console.log(result); 48 - }; 49 - 50 - export const fmt = async (client: Client, src = ".") => { 51 - const context = client.host().directory(src); 52 - let command = ["deno", "fmt"]; 53 - 54 - if (existsSync("devbox.json")) { 55 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 56 - } 57 - 58 - const ctr = baseCtr(client, Job.fmt) 59 - .withDirectory("/app", context, { 60 - exclude: [".git", ".devbox", ".fluentci"], 61 - }) 62 - .withWorkdir("/app") 63 - .withExec(command); 64 - 65 - const result = await ctr.stdout(); 66 - 67 - console.log(result); 68 - }; 69 - 70 - export const test = async ( 71 - client: Client, 72 - src = ".", 73 - options: { ignore: string[] } = { ignore: [] } 74 - ) => { 75 - const context = client.host().directory(src); 76 - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; 77 - 78 - if (options.ignore.length > 0) { 79 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 80 - } 81 - 82 - if (existsSync("devbox.json")) { 83 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 84 - } 85 - 86 - const ctr = baseCtr(client, Job.test) 87 - .from("denoland/deno:alpine") 88 - .withDirectory("/app", context, { 89 - exclude: [".git", ".devbox", ".fluentci"], 90 - }) 91 - .withWorkdir("/app") 92 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 93 - .withExec(command) 94 - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); 95 - 96 - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); 97 - 98 - const result = await ctr.stdout(); 99 - 100 - console.log(result); 101 - }; 102 - 103 - export const deploy = async (client: Client, src = ".") => { 104 - const context = client.host().directory(src); 105 - let installDeployCtl = [ 106 - "deno", 107 - "install", 108 - "--allow-all", 109 - "--no-check", 110 - "-r", 111 - "-f", 112 - "https://deno.land/x/deploy/deployctl.ts", 113 - ]; 114 - const project = Deno.env.get("DENO_PROJECT"); 115 - const noStatic = Deno.env.get("NO_STATIC"); 116 - const exclude = Deno.env.get("EXCLUDE"); 117 - 118 - let command = ["deployctl", "deploy"]; 119 - 120 - if (noStatic) { 121 - command = command.concat(["--no-static"]); 122 - } 123 - 124 - if (exclude) { 125 - command = command.concat([`--exclude=${exclude}`]); 126 - } 127 - 128 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 129 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 130 - } 131 - 132 - if (!project) { 133 - throw new Error("DENO_PROJECT environment variable is not set"); 134 - } 135 - 136 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 137 - command = command.concat([`--project=${project}`, script]); 138 - 139 - if (existsSync("devbox.json")) { 140 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 141 - installDeployCtl = [ 142 - "sh", 143 - "-c", 144 - `devbox run -- ${installDeployCtl.join(" ")}`, 145 - ]; 146 - } 147 - 148 - const ctr = baseCtr(client, Job.deploy) 149 - .from("denoland/deno:alpine") 150 - .withDirectory("/app", context, { 151 - exclude: [".git", ".devbox", ".fluentci"], 152 - }) 153 - .withWorkdir("/app") 154 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 155 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 156 - .withEnvVariable( 157 - "DENO_MAIN_SCRIPT", 158 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 159 - ) 160 - .withExec(installDeployCtl) 161 - .withExec(command); 162 - 163 - const result = await ctr.stdout(); 164 - 165 - console.log(result); 166 - }; 167 - 168 - export type JobExec = ( 169 - client: Client, 170 - src?: string 171 - ) => 172 - | Promise<void> 173 - | (( 174 - client: Client, 175 - src?: string, 176 - options?: { 177 - ignore: string[]; 178 - } 179 - ) => Promise<void>); 180 - 181 - export const codecov = upload; 182 - 183 - export const runnableJobs: Record<Job, JobExec> = { 184 - [Job.fmt]: fmt, 185 - [Job.lint]: lint, 186 - [Job.test]: test, 187 - [Job.deploy]: deploy, 188 - [Job.codecov]: upload, 189 - }; 190 - 191 - export const jobDescriptions: Record<Job, string> = { 192 - [Job.fmt]: "Format your code", 193 - [Job.lint]: "Lint your code", 194 - [Job.test]: "Run your tests", 195 - [Job.deploy]: "Deploy your code to Deno Deploy", 196 - [Job.codecov]: "Upload your code coverage to Codecov", 197 - };
-21
.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/example/.fluentci/.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-52
.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/config.ts
··· 1 - import { JobSpec, Workflow } from "fluent_github_actions"; 2 - 3 - export function generateYaml() { 4 - const workflow = new Workflow("Codecov"); 5 - 6 - const push = { 7 - branches: ["main"], 8 - }; 9 - 10 - const setupDagger = `\ 11 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - sudo mv bin/dagger /usr/local/bin 13 - dagger version`; 14 - 15 - const tests: JobSpec = { 16 - "runs-on": "ubuntu-latest", 17 - steps: [ 18 - { 19 - uses: "actions/checkout@v2", 20 - }, 21 - { 22 - uses: "denoland/setup-deno@v1", 23 - with: { 24 - "deno-version": "v1.37", 25 - }, 26 - }, 27 - { 28 - name: "Setup Fluent CI CLI", 29 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - }, 31 - { 32 - name: "Setup Dagger", 33 - run: setupDagger, 34 - }, 35 - { 36 - name: "List Jobs", 37 - run: "fluentci ls .", 38 - }, 39 - { 40 - name: "Run Dagger Pipelines", 41 - run: "dagger run fluentci . fmt lint test codecov", 42 - env: { 43 - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", 44 - }, 45 - }, 46 - ], 47 - }; 48 - 49 - workflow.on({ push }).jobs({ tests }); 50 - 51 - workflow.save(".github/workflows/ci.yml"); 52 - }
-3
.fluentci/example/.fluentci/.fluentci/.fluentci/src/github/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml();
-4
.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/example/.fluentci/.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Codecov 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: List Jobs 24 - run: fluentci ls . 25 - - name: Run Dagger Pipelines 26 - run: dagger run fluentci . fmt lint test codecov 27 - env: 28 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-2
.fluentci/example/.fluentci/.fluentci/.gitignore
··· 1 - coverage/ 2 - coverage.lcov
-3
.fluentci/example/.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/example/.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-69
.fluentci/example/.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use CI/CD Pipeline for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Run the following command: 12 - 13 - ```bash 14 - dagger run fluentci deno_pipeline 15 - ``` 16 - 17 - Or, if you want to use it as a template: 18 - 19 - ```bash 20 - fluentci init -t deno 21 - ``` 22 - 23 - This will create a `.fluentci` folder in your project. 24 - 25 - Now you can run the pipeline with: 26 - 27 - ```bash 28 - dagger run fluentci . 29 - ``` 30 - 31 - ## Environment variables (Deno Deploy) 32 - 33 - | Variable | Description | Default | 34 - | ----------------- | ------------------------- | ---------- | 35 - | DENO_PROJECT | Your project name | | 36 - | NO_STATIC | Disable static assets | `false` | 37 - | EXCLUDE | Exclude files from deploy | | 38 - | DENO_DEPLOY_TOKEN | Your Deno Deploy token | | 39 - | DENO_MAIN_SCRIPT | Your main script | `main.tsx` | 40 - 41 - ## Jobs 42 - 43 - | Job | Description | Options | 44 - | ------ | ------------------------------ | ---------------------- | 45 - | fmt | Format your code | | 46 - | lint | Lint your code | | 47 - | test | Run your tests | `{ ignore: string[] }` | 48 - | deploy | Deploy your app to Deno Deploy | | 49 - 50 - ## Programmatic usage 51 - 52 - You can also use this pipeline programmatically: 53 - 54 - ```ts 55 - import { Client, connect } from "https://esm.sh/@dagger.io/dagger@0.8.1"; 56 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 57 - 58 - const { fmt, lint, test } = Dagger; 59 - 60 - function pipeline(src = ".") { 61 - connect(async (client: Client) => { 62 - await fmt(client, src); 63 - await lint(client, src); 64 - await test(client, src); 65 - }); 66 - } 67 - 68 - pipeline(); 69 - ```
-12
.fluentci/example/.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/example/.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-68
.fluentci/example/.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "3", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts": "ea5ea4fb985f879fdd1c0aed77ac635ba090606c1ecce9d5f5c107493d287984", 9 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 10 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 11 - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", 12 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 13 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 14 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 15 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 16 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 17 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 18 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 19 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 20 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 21 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 22 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 23 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 26 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 27 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 28 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 29 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 30 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 31 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 32 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 33 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 34 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 35 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 36 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 37 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 38 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 39 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 40 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 41 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 42 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 43 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 44 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 45 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 46 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 47 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 49 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 50 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 51 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 52 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 53 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 54 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 55 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 56 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 57 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 58 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 59 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 60 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 61 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 62 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 63 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 64 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 65 - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 66 - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43" 67 - } 68 - }
-25
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-25
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.devcontainer/devcontainer.json
··· 1 - // For format details, see https://aka.ms/devcontainer.json. For config options, see the 2 - // README at: https://github.com/devcontainers/templates/tree/main/src/debian 3 - { 4 - "name": "Debian", 5 - // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile 6 - "image": "mcr.microsoft.com/devcontainers/base:bullseye", 7 - "features": { 8 - "ghcr.io/devcontainers/features/github-cli:1": {}, 9 - "ghcr.io/devcontainers/features/nix:1": {} 10 - }, 11 - 12 - // Features to add to the dev container. More info: https://containers.dev/features. 13 - // "features": {}, 14 - 15 - // Use 'forwardPorts' to make a list of ports inside the container available locally. 16 - // "forwardPorts": [], 17 - 18 - // Use 'postCreateCommand' to run commands after the container is created. 19 - "postCreateCommand": "nix develop --experimental-features \"nix-command flakes\"" 20 - // Configure tool-specific properties. 21 - // "customizations": {}, 22 - 23 - // Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root. 24 - // "remoteUser": "root" 25 - }
-28
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-88
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use GitLab CI Pipeline and Jobs for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Quick start: 12 - 13 - ```ts 14 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 15 - 16 - const { pipeline } = GitLab; 17 - 18 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 19 - ``` 20 - 21 - Or, if you want to use the predefined jobs: 22 - 23 - ```ts 24 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci/mod.ts"; 25 - import { GitLab } from "https://deno.land/x/deno_pipeline/mod.ts"; 26 - 27 - const { fmt, lint, test } = GitLab; 28 - 29 - const const pipeline = new GitlabCI() 30 - .image("denoland/deno:alpine") 31 - .addJob("fmt", fmt) 32 - .addJob("lint", lint) 33 - .addJob("test", test); 34 - 35 - pipeline.write(); // Write the pipeline to the file .gitlab-ci.yml 36 - ``` 37 - 38 - It will generate the following `.gitlab-ci.yml` file: 39 - 40 - ```yaml 41 - # Do not edit this file directly. It is generated by Fluent GitLab CI 42 - 43 - image: denoland/deno:alpine 44 - 45 - fmt: 46 - image: denoland/deno:alpine 47 - script: 48 - - deno fmt --check 49 - 50 - lint: 51 - image: denoland/deno:alpine 52 - script: 53 - - deno lint 54 - 55 - test: 56 - image: denoland/deno:alpine 57 - script: 58 - - deno test 59 - ``` 60 - 61 - ## ๐Ÿงช Advanced Usage 62 - 63 - This package also provides a ready-to-use pipeline for 64 - [Dagger](https://dagger.io/), just run the following command on your Deno 65 - project: 66 - 67 - ```sh 68 - dagger run deno run -A https://deno.land/x/deno_pipeline/ci.ts 69 - ``` 70 - 71 - Or, if you want to use the predefined jobs: 72 - 73 - ```ts 74 - import Client, { connect } from "@dagger.io/dagger"; 75 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 76 - 77 - const { fmt, lint, test } = Dagger; 78 - 79 - function pipeline(src = ".") { 80 - connect(async (client: Client) => { 81 - await fmt(client, src); 82 - await lint(client, src); 83 - await test(client, src); 84 - }); 85 - } 86 - 87 - pipeline(); 88 - ```
-12
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-66
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 9 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 10 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 11 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 12 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 13 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 14 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 15 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 16 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 17 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 18 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 19 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 20 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 21 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 22 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 23 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 25 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 26 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 27 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 28 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 29 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 30 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 31 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 32 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 33 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 34 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 35 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 36 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 37 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 38 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 39 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 40 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 41 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 42 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 43 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 44 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 45 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 46 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 47 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 48 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 49 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 50 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 51 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 52 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 53 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 54 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 55 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 56 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 57 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 58 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 59 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 60 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 61 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 62 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 63 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 64 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 65 - } 66 - }
-19
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-27
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "url": "node:url", 6 - "readline": "node:readline", 7 - "process": "node:process", 8 - "path": "node:path", 9 - "os": "node:os", 10 - "fs": "node:fs", 11 - "crypto": "node:crypto" 12 - }, 13 - "scopes": { 14 - "https://esm.sh/v128/": { 15 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 16 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 17 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 18 - "execa": "https://esm.sh/v128/execa@7.1.1", 19 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 20 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 21 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 22 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 23 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 24 - "tar": "https://esm.sh/v128/tar@6.1.15" 25 - } 26 - } 27 - }
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-111
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { existsSync } from "fs"; 3 - 4 - export enum Job { 5 - fmt = "fmt", 6 - lint = "lint", 7 - test = "test", 8 - } 9 - 10 - export const lint = async (client: Client, src = ".") => { 11 - const context = client.host().directory(src); 12 - let command = ["deno", "lint"]; 13 - 14 - if (existsSync("devbox.json")) { 15 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 16 - } 17 - 18 - const ctr = client 19 - .pipeline(Job.lint) 20 - .container() 21 - .from("denoland/deno:alpine") 22 - .withDirectory("/app", context, { 23 - exclude: [".git", ".devbox", ".fluentci"], 24 - }) 25 - .withWorkdir("/app") 26 - .withExec(command); 27 - 28 - const result = await ctr.stdout(); 29 - 30 - console.log(result); 31 - }; 32 - 33 - export const fmt = async (client: Client, src = ".") => { 34 - const context = client.host().directory(src); 35 - let command = ["deno", "fmt"]; 36 - 37 - if (existsSync("devbox.json")) { 38 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 39 - } 40 - 41 - const ctr = client 42 - .pipeline(Job.fmt) 43 - .container() 44 - .from("denoland/deno:alpine") 45 - .withDirectory("/app", context, { 46 - exclude: [".git", ".devbox", ".fluentci"], 47 - }) 48 - .withWorkdir("/app") 49 - .withExec(command); 50 - 51 - const result = await ctr.stdout(); 52 - 53 - console.log(result); 54 - }; 55 - 56 - export const test = async ( 57 - client: Client, 58 - src = ".", 59 - options: { ignore: string[] } = { ignore: [] } 60 - ) => { 61 - const context = client.host().directory(src); 62 - let command = ["deno", "test", "-A", "--lock-write"]; 63 - 64 - if (options.ignore.length > 0) { 65 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 66 - } 67 - 68 - if (existsSync("devbox.json")) { 69 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 70 - } 71 - 72 - const ctr = client 73 - .pipeline(Job.test) 74 - .container() 75 - .from("denoland/deno:alpine") 76 - .withDirectory("/app", context, { 77 - exclude: [".git", ".devbox", ".fluentci"], 78 - }) 79 - .withWorkdir("/app") 80 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 81 - .withExec(command); 82 - 83 - const result = await ctr.stdout(); 84 - 85 - console.log(result); 86 - }; 87 - 88 - export type JobExec = ( 89 - client: Client, 90 - src?: string 91 - ) => 92 - | Promise<void> 93 - | (( 94 - client: Client, 95 - src?: string, 96 - options?: { 97 - ignore: string[]; 98 - } 99 - ) => Promise<void>); 100 - 101 - export const runnableJobs: Record<Job, JobExec> = { 102 - [Job.fmt]: fmt, 103 - [Job.lint]: lint, 104 - [Job.test]: test, 105 - }; 106 - 107 - export const jobDescriptions: Record<Job, string> = { 108 - [Job.fmt]: "Format your code", 109 - [Job.lint]: "Lint your code", 110 - [Job.test]: "Run your tests", 111 - };
-21
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.github/workflows/ci.yml
··· 1 - name: Codecov 2 - 3 - # Controls when the action will run. Triggers the workflow on push or pull request 4 - # events but only for the master branch 5 - on: 6 - push: 7 - branches: [main] 8 - pull_request: 9 - branches: [main] 10 - 11 - jobs: 12 - test: 13 - runs-on: ubuntu-latest 14 - steps: 15 - - uses: actions/checkout@v2 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.34 19 - - name: Create coverage files 20 - run: deno test --allow-read --coverage=coverage --lock-write # create coverage files 21 - - name: Create coverage report 22 - run: deno coverage ./coverage --lcov > coverage.lcov # create coverage report 23 - - name: Collect coverage 24 - uses: codecov/codecov-action@v3 # upload the report on Codecov 25 - env: 26 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} 27 - with: 28 - file: ./coverage.lcov
-3
.fluentci/example/.fluentci/.fluentci/example/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/example/.fluentci/.fluentci/example/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/deno-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/example/.fluentci/.fluentci/example/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/example/.fluentci/.fluentci/example/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-58
.fluentci/example/.fluentci/.fluentci/example/.fluentci/README.md
··· 1 - # Deno Pipeline 2 - 3 - [![deno module](https://shield.deno.dev/x/deno_pipeline)](https://deno.land/x/deno_pipeline) 4 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 5 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/deno-pipeline)](https://codecov.io/gh/fluent-ci-templates/deno-pipeline) 6 - 7 - A ready-to-use CI/CD Pipeline for your Deno projects. 8 - 9 - ## ๐Ÿš€ Usage 10 - 11 - Run the following command: 12 - 13 - ```bash 14 - dagger run fluentci deno_pipeline 15 - ``` 16 - 17 - Or, if you want to use it as a template: 18 - 19 - ```bash 20 - fluentci init -t deno 21 - ``` 22 - 23 - This will create a `.fluentci` folder in your project. 24 - 25 - Now you can run the pipeline with: 26 - 27 - ```bash 28 - dagger run fluentci . 29 - ``` 30 - 31 - ## Jobs 32 - 33 - | Job | Description | Options | 34 - | ----- | ---------------- | ---------------------- | 35 - | fmt | Format your code | | 36 - | lint | Lint your code | | 37 - | test | Run your tests | `{ ignore: string[] }` | 38 - 39 - ## Programmatic usage 40 - 41 - You can also use this pipeline programmatically: 42 - 43 - ```ts 44 - import Client, { connect } from "@dagger.io/dagger"; 45 - import { Dagger } from "https://deno.land/x/deno_pipeline/mod.ts"; 46 - 47 - const { fmt, lint, test } = Dagger; 48 - 49 - function pipeline(src = ".") { 50 - connect(async (client: Client) => { 51 - await fmt(client, src); 52 - await lint(client, src); 53 - await test(client, src); 54 - }); 55 - } 56 - 57 - pipeline(); 58 - ```
-12
.fluentci/example/.fluentci/.fluentci/example/.fluentci/ci.ts
··· 1 - const command = new Deno.Command(Deno.execPath(), { 2 - args: [ 3 - "run", 4 - "-A", 5 - "--import-map=https://deno.land/x/deno_pipeline/import_map.json", 6 - "https://deno.land/x/deno_pipeline/src/dagger/runner.ts", 7 - ], 8 - }); 9 - 10 - const { stdout } = await command.output(); 11 - 12 - console.log(new TextDecoder().decode(stdout));
-9
.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "ci:dagger": "dagger run deno run -A src/dagger/runner.ts" 8 - } 9 - }
-67
.fluentci/example/.fluentci/.fluentci/example/.fluentci/deno.lock
··· 1 - { 2 - "version": "2", 3 - "remote": { 4 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 5 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 6 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 7 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 8 - "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts": "a34aea3753c7079de5877f592ce31f30d05d552155729ff3e695d77326405133", 9 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 10 - "https://esm.sh/stringify-tree@1.1.1": "8d994a105481fa944515323d89bd2596c1de79f3d9bd1386266463934716eca0", 11 - "https://esm.sh/v128/*@dagger.io/dagger@0.6.3": "cb691a77c0cdaee22f2b8393731b5143c83ce22dbbea204cdbfd203768d15b64", 12 - "https://esm.sh/v128/@dagger.io/dagger@0.6.3/X-ZS8q/denonext/dagger.mjs": "fd0901784d75b99615b5409c3654b5c7edfc5ba377c9e1a5a67ffff4f7d3ac32", 13 - "https://esm.sh/v128/adm-zip@0.5.10": "d9c54d6d2dd788462781a57d923295bd79304e6fd74b242fd4b30e35b39c5dcf", 14 - "https://esm.sh/v128/adm-zip@0.5.10/denonext/adm-zip.mjs": "07a9731547905e0ca55ae917e1969d7f6d04fb3773f906ce3306891337eb4849", 15 - "https://esm.sh/v128/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 16 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 17 - "https://esm.sh/v128/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "0569a26e7ad4b3376516cbc9b1942e10961a58030eadcea8c848e6b956eb355c", 18 - "https://esm.sh/v128/data-uri-to-buffer@4.0.1/denonext/data-uri-to-buffer.mjs": "70ef987b1da58391495ecfad9888d996469224faf3cd996d81dc2e059feb9f31", 19 - "https://esm.sh/v128/env-paths@3.0.0": "8400fb23319be9b30d7b40d1c865541c5b3c7726cdf9b74000bc0f1678d52ecf", 20 - "https://esm.sh/v128/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 21 - "https://esm.sh/v128/execa@7.1.1": "a40c7030df81ab0847a5d844f4c5c6420af973dff05fef88e53cbb9b8667fdc2", 22 - "https://esm.sh/v128/execa@7.1.1/denonext/execa.mjs": "9d5943544c0df3761b52f2c095f89a03ca6c028d818a8f0475ff883b0408f154", 23 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/fetch-blob.mjs": "0531568b36c0f6db3e9825fbb2d08dee51100eb675c2bf1d98d6971a92010721", 24 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/file.js": "fd82828163a4e7bdc15190d8c3dbfd92f93274d05bd7f7f5ab81093e3ad7e9c2", 25 - "https://esm.sh/v128/fetch-blob@3.2.0/denonext/from.js": "7d3258c7960755497f90879806f0b815d5e564c2ac1523238af5cb9552ff5c45", 26 - "https://esm.sh/v128/formdata-polyfill@4.0.10/denonext/esm.min.js": "b6d65a204e81eca699d9eb6f867e9efffa42db39a8f161690915a89e5eb1766f", 27 - "https://esm.sh/v128/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "74b00283d556b281bdfd6a669576d852f2c43702043c411985f8f8188d208c5d", 28 - "https://esm.sh/v128/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 29 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 30 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 31 - "https://esm.sh/v128/graphql-tag@2.12.6": "5bfa27da9c9918fb52a01b8579891e804e0365d91118df1f2e0957a72dacdc39", 32 - "https://esm.sh/v128/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "331d09949efc4ac60c84a69b52a7da8b333210493900e54953ae4604c9874527", 33 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 34 - "https://esm.sh/v128/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 35 - "https://esm.sh/v128/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 36 - "https://esm.sh/v128/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 37 - "https://esm.sh/v128/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 38 - "https://esm.sh/v128/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 39 - "https://esm.sh/v128/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 40 - "https://esm.sh/v128/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 41 - "https://esm.sh/v128/minizlib@2.1.2/denonext/minizlib.mjs": "0d919b6a0c60d5a31e14d748ff9d62aeae2923b604bcc6a22f90fa4bbd400d68", 42 - "https://esm.sh/v128/mkdirp@1.0.4/denonext/mkdirp.mjs": "ee129b32e55dd8bede6b1bbd1978f7775fa5e2720d5a7ae07bf1e8c99abd77c7", 43 - "https://esm.sh/v128/node-color-log@10.0.2": "05a277987c64153af1252167135076155fdc6b39ca260b2bdc39750da12d2a2d", 44 - "https://esm.sh/v128/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 45 - "https://esm.sh/v128/node-domexception@1.0.0/denonext/node-domexception.mjs": "bb35ba54c1a2b35870618876c0c96310a28ae58aecff33c8eed58a582e270ff4", 46 - "https://esm.sh/v128/node-fetch@3.3.1": "916dcee177a69fb0e46970c528cb66fcd4973488f861844c0a235bfc645b0506", 47 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/node-fetch.mjs": "dc3a8f1f2fc9eb26d0d33e49f3750acc265d51a1a54bbd670c5d9f640b633a93", 48 - "https://esm.sh/v128/node-fetch@3.3.1/denonext/src/utils/multipart-parser.js": "713b1b8cbafc4bfb7358debeb35d507e0d2328f0a28b8a2a7d79a3e5e4f5e5b8", 49 - "https://esm.sh/v128/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "3540b8c2dd1430f10d580f323f3a51aa30094da27a9220cce03ce69884b163bb", 50 - "https://esm.sh/v128/onetime@6.0.0/denonext/onetime.mjs": "6e362222575d815f37fb813168d7069dd6a0f6bb6f972ed54d1bccb0f9fb3e1b", 51 - "https://esm.sh/v128/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 52 - "https://esm.sh/v128/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 53 - "https://esm.sh/v128/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 54 - "https://esm.sh/v128/shebang-command@2.0.0/denonext/shebang-command.mjs": "404e0fb09a782ca9495d53c721bb84b673b7b2e1054e021852143a6b91ca0e4f", 55 - "https://esm.sh/v128/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 56 - "https://esm.sh/v128/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 57 - "https://esm.sh/v128/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 58 - "https://esm.sh/v128/tar@6.1.15": "0460339f8aba5f287e8bebe258fe3fe13cb12f85820693f25724f0d98ef1258e", 59 - "https://esm.sh/v128/tar@6.1.15/denonext/tar.mjs": "6194d892de8457b3b1f11d5cbacda1d540b453b45e8cb9f5f610abfb3e490b65", 60 - "https://esm.sh/v128/tslib@2.6.0/denonext/tslib.mjs": "2215292e6fcf28a7a081eee911f127bb3c44cdd61ff0651e3e384d7a49b4e42b", 61 - "https://esm.sh/v128/web-streams-polyfill@3.2.1/denonext/dist/ponyfill.es2018.js": "a2edb52a93494cda06386b3d6a168016b366e78f02c5eff1f94a0240be12ac96", 62 - "https://esm.sh/v128/which@2.0.2/denonext/which.mjs": "86bf76e4937edb7fa3464d7bb9a426ef273684d1cefbec5ba5f1bdcb5cafff91", 63 - "https://esm.sh/v128/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 64 - "https://esm.sh/v130/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 65 - "https://esm.sh/v130/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "40a9d40e0282b5432302a3da68b88aa11685bc0b8a0b70246168deed5c5773fe" 66 - } 67 - }
-19
.fluentci/example/.fluentci/.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/example/.fluentci/.fluentci/example/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-27
.fluentci/example/.fluentci/.fluentci/example/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "url": "node:url", 6 - "readline": "node:readline", 7 - "process": "node:process", 8 - "path": "node:path", 9 - "os": "node:os", 10 - "fs": "node:fs", 11 - "crypto": "node:crypto" 12 - }, 13 - "scopes": { 14 - "https://esm.sh/v128/": { 15 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 16 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 17 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 18 - "execa": "https://esm.sh/v128/execa@7.1.1", 19 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 20 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 21 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 22 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 23 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 24 - "tar": "https://esm.sh/v128/tar@6.1.15" 25 - } 26 - } 27 - }
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-188
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 3 - import { existsSync } from "fs"; 4 - 5 - export enum Job { 6 - fmt = "fmt", 7 - lint = "lint", 8 - test = "test", 9 - deploy = "deploy", 10 - } 11 - 12 - const baseCtr = (client: Client, pipeline: string) => { 13 - if (existsSync("devbox.json")) { 14 - return withDevbox( 15 - client 16 - .pipeline(pipeline) 17 - .container() 18 - .from("alpine:latest") 19 - .withExec(["apk", "update"]) 20 - .withExec(["apk", "add", "bash", "curl"]) 21 - .withMountedCache("/nix", client.cacheVolume("nix")) 22 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 23 - ); 24 - } 25 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 26 - }; 27 - 28 - export const lint = async (client: Client, src = ".") => { 29 - const context = client.host().directory(src); 30 - let command = ["deno", "lint"]; 31 - 32 - if (existsSync("devbox.json")) { 33 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 34 - } 35 - 36 - const ctr = baseCtr(client, Job.lint) 37 - .withDirectory("/app", context, { 38 - exclude: [".git", ".devbox", ".fluentci"], 39 - }) 40 - .withWorkdir("/app") 41 - .withExec(command); 42 - 43 - const result = await ctr.stdout(); 44 - 45 - console.log(result); 46 - }; 47 - 48 - export const fmt = async (client: Client, src = ".") => { 49 - const context = client.host().directory(src); 50 - let command = ["deno", "fmt"]; 51 - 52 - if (existsSync("devbox.json")) { 53 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 54 - } 55 - 56 - const ctr = baseCtr(client, Job.fmt) 57 - .withDirectory("/app", context, { 58 - exclude: [".git", ".devbox", ".fluentci"], 59 - }) 60 - .withWorkdir("/app") 61 - .withExec(command); 62 - 63 - const result = await ctr.stdout(); 64 - 65 - console.log(result); 66 - }; 67 - 68 - export const test = async ( 69 - client: Client, 70 - src = ".", 71 - options: { ignore: string[] } = { ignore: [] } 72 - ) => { 73 - const context = client.host().directory(src); 74 - let command = ["deno", "test", "-A", "--lock-write"]; 75 - 76 - if (options.ignore.length > 0) { 77 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 78 - } 79 - 80 - if (existsSync("devbox.json")) { 81 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 82 - } 83 - 84 - const ctr = baseCtr(client, Job.test) 85 - .from("denoland/deno:alpine") 86 - .withDirectory("/app", context, { 87 - exclude: [".git", ".devbox", ".fluentci"], 88 - }) 89 - .withWorkdir("/app") 90 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 91 - .withExec(command); 92 - 93 - const result = await ctr.stdout(); 94 - 95 - console.log(result); 96 - }; 97 - 98 - export const deploy = async (client: Client, src = ".") => { 99 - const context = client.host().directory(src); 100 - let installDeployCtl = [ 101 - "deno", 102 - "install", 103 - "--allow-all", 104 - "--no-check", 105 - "-r", 106 - "-f", 107 - "https://deno.land/x/deploy/deployctl.ts", 108 - ]; 109 - const project = Deno.env.get("DENO_PROJECT"); 110 - const noStatic = Deno.env.get("NO_STATIC"); 111 - const exclude = Deno.env.get("EXCLUDE"); 112 - 113 - let command = ["deployctl", "deploy"]; 114 - 115 - if (noStatic) { 116 - command = command.concat(["--no-static"]); 117 - } 118 - 119 - if (exclude) { 120 - command = command.concat([`--exclude=${exclude}`]); 121 - } 122 - 123 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 124 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 125 - } 126 - 127 - if (!project) { 128 - throw new Error("DENO_PROJECT environment variable is not set"); 129 - } 130 - 131 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 132 - command = command.concat([`--project=${project}`, script]); 133 - 134 - if (existsSync("devbox.json")) { 135 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 136 - installDeployCtl = [ 137 - "sh", 138 - "-c", 139 - `devbox run -- ${installDeployCtl.join(" ")}`, 140 - ]; 141 - } 142 - 143 - const ctr = baseCtr(client, Job.deploy) 144 - .from("denoland/deno:alpine") 145 - .withDirectory("/app", context, { 146 - exclude: [".git", ".devbox", ".fluentci"], 147 - }) 148 - .withWorkdir("/app") 149 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 150 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 151 - .withEnvVariable( 152 - "DENO_MAIN_SCRIPT", 153 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 154 - ) 155 - .withExec(installDeployCtl) 156 - .withExec(command); 157 - 158 - const result = await ctr.stdout(); 159 - 160 - console.log(result); 161 - }; 162 - 163 - export type JobExec = ( 164 - client: Client, 165 - src?: string 166 - ) => 167 - | Promise<void> 168 - | (( 169 - client: Client, 170 - src?: string, 171 - options?: { 172 - ignore: string[]; 173 - } 174 - ) => Promise<void>); 175 - 176 - export const runnableJobs: Record<Job, JobExec> = { 177 - [Job.fmt]: fmt, 178 - [Job.lint]: lint, 179 - [Job.test]: test, 180 - [Job.deploy]: deploy, 181 - }; 182 - 183 - export const jobDescriptions: Record<Job, string> = { 184 - [Job.fmt]: "Format your code", 185 - [Job.lint]: "Lint your code", 186 - [Job.test]: "Run your tests", 187 - [Job.deploy]: "Deploy your code to Deno Deploy", 188 - };
-21
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-4
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/example/.fluentci/.fluentci/example/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-3
.fluentci/example/.fluentci/.fluentci/example/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-16
.fluentci/example/.fluentci/.fluentci/example/README.md
··· 1 - # Deno Pipeline Example 2 - 3 - This is an example using the [Deno Pipeline](https://github.com/fluent-ci-templates/deno-pipeline). 4 - 5 - ## ๐Ÿš€ Usage 6 - 7 - You need to set the following environment variables: 8 - 9 - - `DENO_DEPLOY_TOKEN`: Your Deno Deploy token. 10 - - `DENO_PROJECT`: Your project name. 11 - 12 - Then, run the following command: 13 - 14 - ```bash 15 - dagger run fluentci . fmt lint deploy 16 - ```
-20
.fluentci/example/.fluentci/.fluentci/example/main.tsx
··· 1 - /** @jsx h */ 2 - import { serve } from "https://deno.land/std@0.190.0/http/server.ts"; 3 - import html, { h } from "https://deno.land/x/htm@0.2.1/mod.ts"; 4 - 5 - const handler = (req: Request) => 6 - html({ 7 - title: "Hello World!", 8 - styles: [ 9 - "html, body { margin: 0; height: 100%; }", 10 - "body { background: #86efac; display: flex; flex-direction: column; align-items: center; justify-content: center; }", 11 - ], 12 - body: ( 13 - <body> 14 - <img width="64" src="https://dash.deno.com/assets/logo.svg" /> 15 - <h1>Hello Patricia!</h1> 16 - </body> 17 - ), 18 - }); 19 - 20 - serve(handler);
-19
.fluentci/example/.fluentci/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent GitLab CI 2 - 3 - image: denoland/deno:alpine 4 - 5 - fmt: 6 - image: denoland/deno:alpine 7 - script: 8 - - deno fmt --check 9 - 10 - lint: 11 - image: denoland/deno:alpine 12 - script: 13 - - deno lint 14 - 15 - test: 16 - image: denoland/deno:alpine 17 - script: 18 - - deno test 19 -
-61
.fluentci/example/.fluentci/.fluentci/flake.lock
··· 1 - { 2 - "nodes": { 3 - "flake-utils": { 4 - "inputs": { 5 - "systems": "systems" 6 - }, 7 - "locked": { 8 - "lastModified": 1687709756, 9 - "narHash": "sha256-Y5wKlQSkgEK2weWdOu4J3riRd+kV/VCgHsqLNTTWQ/0=", 10 - "owner": "numtide", 11 - "repo": "flake-utils", 12 - "rev": "dbabf0ca0c0c4bce6ea5eaf65af5cb694d2082c7", 13 - "type": "github" 14 - }, 15 - "original": { 16 - "owner": "numtide", 17 - "repo": "flake-utils", 18 - "type": "github" 19 - } 20 - }, 21 - "nixpkgs": { 22 - "locked": { 23 - "lastModified": 1688910226, 24 - "narHash": "sha256-kLTsFu9CAU2Gb288JhIBN/WlX4UUUDz4WiC/U59nvwk=", 25 - "owner": "nixos", 26 - "repo": "nixpkgs", 27 - "rev": "2540432a940aee979be6ccfefba9ea0652c273a0", 28 - "type": "github" 29 - }, 30 - "original": { 31 - "owner": "nixos", 32 - "ref": "release-23.05", 33 - "repo": "nixpkgs", 34 - "type": "github" 35 - } 36 - }, 37 - "root": { 38 - "inputs": { 39 - "flake-utils": "flake-utils", 40 - "nixpkgs": "nixpkgs" 41 - } 42 - }, 43 - "systems": { 44 - "locked": { 45 - "lastModified": 1681028828, 46 - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", 47 - "owner": "nix-systems", 48 - "repo": "default", 49 - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", 50 - "type": "github" 51 - }, 52 - "original": { 53 - "owner": "nix-systems", 54 - "repo": "default", 55 - "type": "github" 56 - } 57 - } 58 - }, 59 - "root": "root", 60 - "version": 7 61 - }
-26
.fluentci/example/.fluentci/.fluentci/flake.nix
··· 1 - { 2 - description = "A Nix-flake-based Deno development environment"; 3 - 4 - inputs = { 5 - nixpkgs.url = "github:nixos/nixpkgs/release-23.05"; 6 - flake-utils.url = "github:numtide/flake-utils"; 7 - }; 8 - 9 - outputs = { 10 - self, 11 - nixpkgs, 12 - flake-utils, 13 - }: 14 - flake-utils.lib.eachDefaultSystem 15 - (system: let 16 - pkgs = import nixpkgs { 17 - inherit system; 18 - }; 19 - in { 20 - devShells.default = pkgs.mkShell { 21 - buildInputs = [ 22 - pkgs.deno 23 - ]; 24 - }; 25 - }); 26 - }
-28
.fluentci/example/.fluentci/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.6.3", 4 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts", 5 - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.1.2/mod.ts", 6 - "url": "node:url", 7 - "readline": "node:readline", 8 - "process": "node:process", 9 - "path": "node:path", 10 - "os": "node:os", 11 - "fs": "node:fs", 12 - "crypto": "node:crypto" 13 - }, 14 - "scopes": { 15 - "https://esm.sh/v128/": { 16 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 17 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 18 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 19 - "execa": "https://esm.sh/v128/execa@7.1.1", 20 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 21 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 22 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 23 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 24 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 25 - "tar": "https://esm.sh/v128/tar@6.1.15" 26 - } 27 - } 28 - }
-4
.fluentci/example/.fluentci/.fluentci/mod.ts
··· 1 - import * as GitLab from "./src/gitlab/index.ts"; 2 - import * as Dagger from "./src/dagger/index.ts"; 3 - 4 - export { Dagger, GitLab };
-4
.fluentci/example/.fluentci/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-197
.fluentci/example/.fluentci/.fluentci/src/dagger/jobs.ts
··· 1 - import Client from "@dagger.io/dagger"; 2 - import { upload } from "https://deno.land/x/codecov_pipeline@v0.1.1/src/dagger/jobs.ts"; 3 - import { withDevbox } from "https://deno.land/x/nix_installer_pipeline@v0.3.6/src/dagger/steps.ts"; 4 - import { existsSync } from "fs"; 5 - 6 - export enum Job { 7 - fmt = "fmt", 8 - lint = "lint", 9 - test = "test", 10 - deploy = "deploy", 11 - codecov = "codecov", 12 - } 13 - 14 - const baseCtr = (client: Client, pipeline: string) => { 15 - if (existsSync("devbox.json")) { 16 - return withDevbox( 17 - client 18 - .pipeline(pipeline) 19 - .container() 20 - .from("alpine:latest") 21 - .withExec(["apk", "update"]) 22 - .withExec(["apk", "add", "bash", "curl"]) 23 - .withMountedCache("/nix", client.cacheVolume("nix")) 24 - .withMountedCache("/etc/nix", client.cacheVolume("nix-etc")) 25 - ); 26 - } 27 - return client.pipeline(pipeline).container().from("denoland/deno:alpine"); 28 - }; 29 - 30 - export const lint = async (client: Client, src = ".") => { 31 - const context = client.host().directory(src); 32 - let command = ["deno", "lint"]; 33 - 34 - if (existsSync("devbox.json")) { 35 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 36 - } 37 - 38 - const ctr = baseCtr(client, Job.lint) 39 - .withDirectory("/app", context, { 40 - exclude: [".git", ".devbox", ".fluentci"], 41 - }) 42 - .withWorkdir("/app") 43 - .withExec(command); 44 - 45 - const result = await ctr.stdout(); 46 - 47 - console.log(result); 48 - }; 49 - 50 - export const fmt = async (client: Client, src = ".") => { 51 - const context = client.host().directory(src); 52 - let command = ["deno", "fmt"]; 53 - 54 - if (existsSync("devbox.json")) { 55 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 56 - } 57 - 58 - const ctr = baseCtr(client, Job.fmt) 59 - .withDirectory("/app", context, { 60 - exclude: [".git", ".devbox", ".fluentci"], 61 - }) 62 - .withWorkdir("/app") 63 - .withExec(command); 64 - 65 - const result = await ctr.stdout(); 66 - 67 - console.log(result); 68 - }; 69 - 70 - export const test = async ( 71 - client: Client, 72 - src = ".", 73 - options: { ignore: string[] } = { ignore: [] } 74 - ) => { 75 - const context = client.host().directory(src); 76 - let command = ["deno", "test", "-A", "--coverage=coverage", "--lock-write"]; 77 - 78 - if (options.ignore.length > 0) { 79 - command = command.concat([`--ignore=${options.ignore.join(",")}`]); 80 - } 81 - 82 - if (existsSync("devbox.json")) { 83 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 84 - } 85 - 86 - const ctr = baseCtr(client, Job.test) 87 - .from("denoland/deno:alpine") 88 - .withDirectory("/app", context, { 89 - exclude: [".git", ".devbox", ".fluentci"], 90 - }) 91 - .withWorkdir("/app") 92 - .withMountedCache("/root/.cache/deno", client.cacheVolume("deno-cache")) 93 - .withExec(command) 94 - .withExec(["sh", "-c", "deno coverage ./coverage --lcov > coverage.lcov"]); 95 - 96 - const result = await ctr.stdout(); 97 - 98 - await ctr.file("/app/coverage.lcov").export("./coverage.lcov"); 99 - 100 - console.log(result); 101 - }; 102 - 103 - export const deploy = async (client: Client, src = ".") => { 104 - const context = client.host().directory(src); 105 - let installDeployCtl = [ 106 - "deno", 107 - "install", 108 - "--allow-all", 109 - "--no-check", 110 - "-r", 111 - "-f", 112 - "https://deno.land/x/deploy/deployctl.ts", 113 - ]; 114 - const project = Deno.env.get("DENO_PROJECT"); 115 - const noStatic = Deno.env.get("NO_STATIC"); 116 - const exclude = Deno.env.get("EXCLUDE"); 117 - 118 - let command = ["deployctl", "deploy"]; 119 - 120 - if (noStatic) { 121 - command = command.concat(["--no-static"]); 122 - } 123 - 124 - if (exclude) { 125 - command = command.concat([`--exclude=${exclude}`]); 126 - } 127 - 128 - if (!Deno.env.get("DENO_DEPLOY_TOKEN")) { 129 - throw new Error("DENO_DEPLOY_TOKEN environment variable is not set"); 130 - } 131 - 132 - if (!project) { 133 - throw new Error("DENO_PROJECT environment variable is not set"); 134 - } 135 - 136 - const script = Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx"; 137 - command = command.concat([`--project=${project}`, script]); 138 - 139 - if (existsSync("devbox.json")) { 140 - command = ["sh", "-c", `devbox run -- ${command.join(" ")}`]; 141 - installDeployCtl = [ 142 - "sh", 143 - "-c", 144 - `devbox run -- ${installDeployCtl.join(" ")}`, 145 - ]; 146 - } 147 - 148 - const ctr = baseCtr(client, Job.deploy) 149 - .from("denoland/deno:alpine") 150 - .withDirectory("/app", context, { 151 - exclude: [".git", ".devbox", ".fluentci"], 152 - }) 153 - .withWorkdir("/app") 154 - .withEnvVariable("PATH", "/root/.deno/bin:$PATH", { expand: true }) 155 - .withEnvVariable("DENO_DEPLOY_TOKEN", Deno.env.get("DENO_DEPLOY_TOKEN")!) 156 - .withEnvVariable( 157 - "DENO_MAIN_SCRIPT", 158 - Deno.env.get("DENO_MAIN_SCRIPT") || "main.tsx" 159 - ) 160 - .withExec(installDeployCtl) 161 - .withExec(command); 162 - 163 - const result = await ctr.stdout(); 164 - 165 - console.log(result); 166 - }; 167 - 168 - export type JobExec = ( 169 - client: Client, 170 - src?: string 171 - ) => 172 - | Promise<void> 173 - | (( 174 - client: Client, 175 - src?: string, 176 - options?: { 177 - ignore: string[]; 178 - } 179 - ) => Promise<void>); 180 - 181 - export const codecov = upload; 182 - 183 - export const runnableJobs: Record<Job, JobExec> = { 184 - [Job.fmt]: fmt, 185 - [Job.lint]: lint, 186 - [Job.test]: test, 187 - [Job.deploy]: deploy, 188 - [Job.codecov]: upload, 189 - }; 190 - 191 - export const jobDescriptions: Record<Job, string> = { 192 - [Job.fmt]: "Format your code", 193 - [Job.lint]: "Lint your code", 194 - [Job.test]: "Run your tests", 195 - [Job.deploy]: "Deploy your code to Deno Deploy", 196 - [Job.codecov]: "Upload your code coverage to Codecov", 197 - };
-21
.fluentci/example/.fluentci/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - import { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 4 - 5 - const tree = { 6 - name: brightGreen("deno_pipeline"), 7 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 8 - name: jobDescriptions[job] 9 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 10 - : brightGreen(job), 11 - children: [], 12 - })), 13 - }; 14 - 15 - console.log( 16 - stringifyTree( 17 - tree, 18 - (t) => t.name, 19 - (t) => t.children 20 - ) 21 - );
-27
.fluentci/example/.fluentci/.fluentci/src/dagger/pipeline.ts
··· 1 - import Client, { connect } from "@dagger.io/dagger"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { fmt, lint, test, runnableJobs } = jobs; 5 - 6 - export default function pipeline(src = ".", args: string[] = []) { 7 - connect(async (client: Client) => { 8 - if (args.length > 0) { 9 - await runSpecificJobs(client, args as jobs.Job[]); 10 - return; 11 - } 12 - 13 - await fmt(client, src); 14 - await lint(client, src); 15 - await test(client, src); 16 - }); 17 - } 18 - 19 - async function runSpecificJobs(client: Client, args: jobs.Job[]) { 20 - for (const name of args) { 21 - const job = runnableJobs[name]; 22 - if (!job) { 23 - throw new Error(`Job ${name} not found`); 24 - } 25 - await job(client); 26 - } 27 - }
-3
.fluentci/example/.fluentci/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - pipeline(".", Deno.args);
-52
.fluentci/example/.fluentci/.fluentci/src/github/config.ts
··· 1 - import { JobSpec, Workflow } from "fluent_github_actions"; 2 - 3 - export function generateYaml() { 4 - const workflow = new Workflow("Codecov"); 5 - 6 - const push = { 7 - branches: ["main"], 8 - }; 9 - 10 - const setupDagger = `\ 11 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - sudo mv bin/dagger /usr/local/bin 13 - dagger version`; 14 - 15 - const tests: JobSpec = { 16 - "runs-on": "ubuntu-latest", 17 - steps: [ 18 - { 19 - uses: "actions/checkout@v2", 20 - }, 21 - { 22 - uses: "denoland/setup-deno@v1", 23 - with: { 24 - "deno-version": "v1.37", 25 - }, 26 - }, 27 - { 28 - name: "Setup Fluent CI CLI", 29 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - }, 31 - { 32 - name: "Setup Dagger", 33 - run: setupDagger, 34 - }, 35 - { 36 - name: "Run Dagger Pipelines", 37 - run: "dagger run fluentci . fmt lint test", 38 - }, 39 - { 40 - name: "Upload to Codecov", 41 - run: "dagger run fluentci codecov_pipeline", 42 - env: { 43 - CODECOV_TOKEN: "${{ secrets.CODECOV_TOKEN }}", 44 - }, 45 - }, 46 - ], 47 - }; 48 - 49 - workflow.on({ push }).jobs({ tests }); 50 - 51 - workflow.save(".github/workflows/ci.yml"); 52 - }
-3
.fluentci/example/.fluentci/.fluentci/src/github/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml();
-4
.fluentci/example/.fluentci/.fluentci/src/gitlab/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - export { fmt, lint, pipeline, test };
-9
.fluentci/example/.fluentci/.fluentci/src/gitlab/jobs.ts
··· 1 - import { Job } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - 3 - export const fmt = new Job() 4 - .image("denoland/deno:alpine") 5 - .script("deno fmt --check"); 6 - 7 - export const lint = new Job().image("denoland/deno:alpine").script("deno lint"); 8 - 9 - export const test = new Job().image("denoland/deno:alpine").script("deno test");
-10
.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline.ts
··· 1 - import { GitlabCI } from "https://deno.land/x/fluent_gitlab_ci@v0.3.2/mod.ts"; 2 - import { fmt, lint, test } from "./jobs.ts"; 3 - 4 - const pipeline = new GitlabCI() 5 - .image("denoland/deno:alpine") 6 - .addJob("fmt", fmt) 7 - .addJob("lint", lint) 8 - .addJob("test", test); 9 - 10 - export default pipeline;
-8
.fluentci/example/.fluentci/.fluentci/src/gitlab/pipeline_test.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 3 - 4 - Deno.test(function pipelineTest() { 5 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 6 - const actual = pipeline.toString(); 7 - assertEquals(actual, expected); 8 - });
-28
.fluentci/example/.fluentci/.github/workflows/ci.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Codecov 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Dagger Pipelines 24 - run: dagger run fluentci . fmt lint test 25 - - name: Upload to Codecov 26 - run: dagger run fluentci codecov_pipeline 27 - env: 28 - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
-25
.fluentci/example/.fluentci/.github/workflows/example.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 2 - 3 - name: Example 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - tests: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Dagger Pipelines 24 - run: dagger run deno run -A ../src/dagger/runner.ts 25 - working-directory: example
-23
.fluentci/example/.fluentci/.github/workflows/zenith.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 2 - 3 - name: Zenith Example 4 - on: 5 - push: 6 - branches: 7 - - zenith 8 - 9 - jobs: 10 - tests: 11 - runs-on: ubuntu-latest 12 - steps: 13 - - uses: actions/checkout@v2 14 - - name: Setup Dagger Zenith 15 - run: | 16 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 17 - sudo mv bin/dagger /usr/local/bin 18 - dagger version 19 - - name: Run Dagger Pipelines 20 - run: | 21 - dagger query --doc build.gql 22 - dagger query --doc test.gql 23 - working-directory: example
-3
.fluentci/example/.fluentci/.vscode/settings.json
··· 1 - { 2 - "deno.enable": true 3 - }
-132
.fluentci/example/.fluentci/CODE_OF_CONDUCT.md
··· 1 - # Contributor Covenant Code of Conduct 2 - 3 - ## Our Pledge 4 - 5 - We as members, contributors, and leaders pledge to make participation in our 6 - community a harassment-free experience for everyone, regardless of age, body 7 - size, visible or invisible disability, ethnicity, sex characteristics, gender 8 - identity and expression, level of experience, education, socio-economic status, 9 - nationality, personal appearance, race, caste, color, religion, or sexual 10 - identity and orientation. 11 - 12 - We pledge to act and interact in ways that contribute to an open, welcoming, 13 - diverse, inclusive, and healthy community. 14 - 15 - ## Our Standards 16 - 17 - Examples of behavior that contributes to a positive environment for our 18 - community include: 19 - 20 - - Demonstrating empathy and kindness toward other people 21 - - Being respectful of differing opinions, viewpoints, and experiences 22 - - Giving and gracefully accepting constructive feedback 23 - - Accepting responsibility and apologizing to those affected by our mistakes, 24 - and learning from the experience 25 - - Focusing on what is best not just for us as individuals, but for the overall 26 - community 27 - 28 - Examples of unacceptable behavior include: 29 - 30 - - The use of sexualized language or imagery, and sexual attention or advances of 31 - any kind 32 - - Trolling, insulting or derogatory comments, and personal or political attacks 33 - - Public or private harassment 34 - - Publishing others' private information, such as a physical or email address, 35 - without their explicit permission 36 - - Other conduct which could reasonably be considered inappropriate in a 37 - professional setting 38 - 39 - ## Enforcement Responsibilities 40 - 41 - Community leaders are responsible for clarifying and enforcing our standards of 42 - acceptable behavior and will take appropriate and fair corrective action in 43 - response to any behavior that they deem inappropriate, threatening, offensive, 44 - or harmful. 45 - 46 - Community leaders have the right and responsibility to remove, edit, or reject 47 - comments, commits, code, wiki edits, issues, and other contributions that are 48 - not aligned to this Code of Conduct, and will communicate reasons for moderation 49 - decisions when appropriate. 50 - 51 - ## Scope 52 - 53 - This Code of Conduct applies within all community spaces, and also applies when 54 - an individual is officially representing the community in public spaces. 55 - Examples of representing our community include using an official e-mail address, 56 - posting via an official social media account, or acting as an appointed 57 - representative at an online or offline event. 58 - 59 - ## Enforcement 60 - 61 - Instances of abusive, harassing, or otherwise unacceptable behavior may be 62 - reported to the community leaders responsible for enforcement at 63 - [GitHub Issues](https://github.com/fluent-ci-templates/rust-pipeline/issues). 64 - All complaints will be reviewed and investigated promptly and fairly. 65 - 66 - All community leaders are obligated to respect the privacy and security of the 67 - reporter of any incident. 68 - 69 - ## Enforcement Guidelines 70 - 71 - Community leaders will follow these Community Impact Guidelines in determining 72 - the consequences for any action they deem in violation of this Code of Conduct: 73 - 74 - ### 1. Correction 75 - 76 - **Community Impact**: Use of inappropriate language or other behavior deemed 77 - unprofessional or unwelcome in the community. 78 - 79 - **Consequence**: A private, written warning from community leaders, providing 80 - clarity around the nature of the violation and an explanation of why the 81 - behavior was inappropriate. A public apology may be requested. 82 - 83 - ### 2. Warning 84 - 85 - **Community Impact**: A violation through a single incident or series of 86 - actions. 87 - 88 - **Consequence**: A warning with consequences for continued behavior. No 89 - interaction with the people involved, including unsolicited interaction with 90 - those enforcing the Code of Conduct, for a specified period of time. This 91 - includes avoiding interactions in community spaces as well as external channels 92 - like social media. Violating these terms may lead to a temporary or permanent 93 - ban. 94 - 95 - ### 3. Temporary Ban 96 - 97 - **Community Impact**: A serious violation of community standards, including 98 - sustained inappropriate behavior. 99 - 100 - **Consequence**: A temporary ban from any sort of interaction or public 101 - communication with the community for a specified period of time. No public or 102 - private interaction with the people involved, including unsolicited interaction 103 - with those enforcing the Code of Conduct, is allowed during this period. 104 - Violating these terms may lead to a permanent ban. 105 - 106 - ### 4. Permanent Ban 107 - 108 - **Community Impact**: Demonstrating a pattern of violation of community 109 - standards, including sustained inappropriate behavior, harassment of an 110 - individual, or aggression toward or disparagement of classes of individuals. 111 - 112 - **Consequence**: A permanent ban from any sort of public interaction within the 113 - community. 114 - 115 - ## Attribution 116 - 117 - This Code of Conduct is adapted from the [Contributor Covenant][homepage], 118 - version 2.1, available at 119 - [https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1]. 120 - 121 - Community Impact Guidelines were inspired by 122 - [Mozilla's code of conduct enforcement ladder][Mozilla CoC]. 123 - 124 - For answers to common questions about this code of conduct, see the FAQ at 125 - [https://www.contributor-covenant.org/faq][FAQ]. Translations are available at 126 - [https://www.contributor-covenant.org/translations][translations]. 127 - 128 - [homepage]: https://www.contributor-covenant.org 129 - [v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html 130 - [Mozilla CoC]: https://github.com/mozilla/diversity 131 - [FAQ]: https://www.contributor-covenant.org/faq 132 - [translations]: https://www.contributor-covenant.org/translations
-70
.fluentci/example/.fluentci/CONTRIBUTING.md
··· 1 - # Contributing Guidelines 2 - 3 - Thank you for your interest in contributing to our project. Whether it's a bug 4 - report, new feature, correction, or additional documentation, we greatly value 5 - feedback and contributions from our community. 6 - 7 - Please read through this document before submitting any issues or pull requests 8 - to ensure we have all the necessary information to effectively respond to your 9 - bug report or contribution. 10 - 11 - ## Reporting Bugs/Feature Requests 12 - 13 - We welcome you to use the GitHub issue tracker to report bugs or suggest 14 - features. 15 - 16 - When filing an issue, please check existing open, or recently closed, issues to 17 - make sure somebody else hasn't already reported the issue. Please try to include 18 - as much information as you can. Details like these are incredibly useful: 19 - 20 - - A reproducible test case or series of steps 21 - - The version of our code being used 22 - - Any modifications you've made relevant to the bug 23 - - Anything unusual about your environment or deployment 24 - 25 - ## Contributing via Pull Requests 26 - 27 - Contributions via pull requests are much appreciated. Before sending us a pull 28 - request, please ensure that: 29 - 30 - 1. You are working against the latest source on the _master_ branch. 31 - 2. You check existing open, and recently merged, pull requests to make sure 32 - someone else hasn't addressed the problem already. 33 - 3. You open an issue to discuss any significant work - we would hate for your 34 - time to be wasted. 35 - 36 - To send us a pull request, please: 37 - 38 - 1. Fork the repository. 39 - 2. Modify the source; please focus on the specific change you are contributing. 40 - If you also reformat all the code, it will be hard for us to focus on your 41 - change. 42 - 3. Ensure local tests pass. 43 - 4. Commit to your fork using clear commit messages. 44 - 5. Send us a pull request, answering any default questions in the pull request 45 - interface. 46 - 6. Pay attention to any automated CI failures reported in the pull request, and 47 - stay involved in the conversation. 48 - 49 - GitHub provides additional document on 50 - [forking a repository](https://help.github.com/articles/fork-a-repo/) and 51 - [creating a pull request](https://help.github.com/articles/creating-a-pull-request/). 52 - 53 - ## Finding contributions to work on 54 - 55 - Looking at the existing issues is a great way to find something to contribute 56 - on. As our projects, by default, use the default GitHub issue labels 57 - (enhancement/bug/duplicate/help wanted/invalid/question/wontfix), looking at any 58 - 'help wanted' issues is a great place to start. 59 - 60 - ## Code of Conduct 61 - 62 - This project has adopted the 63 - [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1, 64 - available at 65 - https://www.contributor-covenant.org/version/2/1/code_of_conduct.html. 66 - 67 - ## Licensing 68 - 69 - See the [LICENSE](LICENSE) file for our project's licensing. We will ask you to 70 - confirm the licensing of your contribution.
-19
.fluentci/example/.fluentci/LICENSE
··· 1 - Copyright (c) 2023 Tsiry Sandratraina <tsiry.sndr@aol.com> 2 - 3 - Permission is hereby granted, free of charge, to any person obtaining a copy 4 - of this software and associated documentation files (the "Software"), to deal 5 - in the Software without restriction, including without limitation the rights 6 - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 7 - copies of the Software, and to permit persons to whom the Software is 8 - furnished to do so, subject to the following conditions: 9 - 10 - The above copyright notice and this permission notice shall be included in all 11 - copies or substantial portions of the Software. 12 - 13 - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 14 - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 15 - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 16 - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 17 - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 18 - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 19 - SOFTWARE.
-61
.fluentci/example/.fluentci/README.md
··· 1 - # Rust Pipeline 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - A ready-to-use CI/CD Pipeline for your Rust projects. 9 - ## ๐Ÿš€ Usage 10 - 11 - Run the following command in your Rust Project: 12 - 13 - ```bash 14 - fluentci run rust_pipeline 15 - ``` 16 - 17 - Or if you want to run specific jobs: 18 - 19 - ```bash 20 - fluentci run rust_pipeline test build 21 - ``` 22 - 23 - 24 - if you want to use it as a template: 25 - 26 - ```bash 27 - fluentci init -t rust 28 - ``` 29 - 30 - This will create a `.fluentci` folder in your project. 31 - 32 - Now you can run the pipeline with: 33 - 34 - ```bash 35 - fluentci run . 36 - ``` 37 - 38 - ## Jobs 39 - 40 - | Job | Description | 41 - | ----- | ------------------ | 42 - | build | build your project | 43 - | test | Run your tests | 44 - 45 - ## Programmatic usage 46 - 47 - You can also use this pipeline programmatically: 48 - 49 - ```ts 50 - import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; 51 - import { build, test } from "https://pkg.fluentci.io/rust_pipeline@v0.5.2/mod.ts"; 52 - 53 - function pipeline(src = ".") { 54 - connect(async (client: Client) => { 55 - await test(client, src); 56 - await build(client, src); 57 - }); 58 - } 59 - 60 - pipeline(); 61 - ```
-14
.fluentci/example/.fluentci/ci.ts
··· 1 - import Client, { connect } from "https://sdk.fluentci.io/v0.1.9/mod.ts"; 2 - import { 3 - build, 4 - test, 5 - } from "https://pkg.fluentci.io/rust_pipeline@v0.5.2/mod.ts"; 6 - 7 - function pipeline(src = ".") { 8 - connect(async (client: Client) => { 9 - await test(client, src); 10 - await build(client, src); 11 - }); 12 - } 13 - 14 - pipeline();
-5
.fluentci/example/.fluentci/dagger.json
··· 1 - { 2 - "root": "", 3 - "name": "rust", 4 - "sdkRuntime": "tsiry/dagger-sdk-deno" 5 - }
-31
.fluentci/example/.fluentci/deno.json
··· 1 - { 2 - "importMap": "import_map.json", 3 - "tasks": { 4 - "esm:add": "deno run -A https://esm.sh/v128 add", 5 - "esm:update": "deno run -A https://esm.sh/v128 update", 6 - "esm:remove": "deno run -A https://esm.sh/v128 remove", 7 - "schema": "deno run -A src/dagger/schema.ts", 8 - "clean": "rm -rf gen schema.graphql" 9 - }, 10 - "fmt": { 11 - "exclude": [ 12 - "example/", 13 - ".fluentci/", 14 - "gen/" 15 - ] 16 - }, 17 - "lint": { 18 - "exclude": [ 19 - "example/", 20 - ".fluentci/", 21 - "gen/" 22 - ] 23 - }, 24 - "test": { 25 - "exclude": [ 26 - "example/", 27 - ".fluentci/", 28 - "gen/" 29 - ] 30 - } 31 - }
-264
.fluentci/example/.fluentci/deno.lock
··· 1 - { 2 - "version": "3", 3 - "packages": { 4 - "specifiers": { 5 - "npm:nexus": "npm:nexus@1.3.0_graphql@16.8.1" 6 - }, 7 - "npm": { 8 - "graphql@16.8.1": { 9 - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", 10 - "dependencies": {} 11 - }, 12 - "iterall@1.3.0": { 13 - "integrity": "sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg==", 14 - "dependencies": {} 15 - }, 16 - "nexus@1.3.0_graphql@16.8.1": { 17 - "integrity": "sha512-w/s19OiNOs0LrtP7pBmD9/FqJHvZLmCipVRt6v1PM8cRUYIbhEswyNKGHVoC4eHZGPSnD+bOf5A3+gnbt0A5/A==", 18 - "dependencies": { 19 - "graphql": "graphql@16.8.1", 20 - "iterall": "iterall@1.3.0", 21 - "tslib": "tslib@2.6.2" 22 - } 23 - }, 24 - "tslib@2.6.2": { 25 - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", 26 - "dependencies": {} 27 - } 28 - } 29 - }, 30 - "remote": { 31 - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/deps.ts": "096395daebc7ed8a18f0484e4ffcc3a7f70e50946735f7df9611a7fcfd8272cc", 32 - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/mod.ts": "e269d71c72ae68e82c1960e5db2a0c7419c97c9683ef717de0ab75d90f364713", 33 - "https://cdn.jsdelivr.net/gh/tsirysndr/tar@v0.1.1/src/tar.ts": "9b02eaaa784b225ad7a23d2769cd492adf113ea7c11c02e3646849e98f4ae43b", 34 - "https://deno.land/std@0.129.0/_util/assert.ts": "e94f2eb37cebd7f199952e242c77654e43333c1ac4c5c700e929ea3aa5489f74", 35 - "https://deno.land/std@0.129.0/_util/os.ts": "49b92edea1e82ba295ec946de8ffd956ed123e2948d9bd1d3e901b04e4307617", 36 - "https://deno.land/std@0.129.0/archive/tar.ts": "35ea1baddec7988cc4034765a2cee7613bc8074bd40940d3f5e98f63070a716a", 37 - "https://deno.land/std@0.129.0/async/abortable.ts": "a896ac6b0d4237bd2d2d248217cfa1f0d85ccda93cb25ebda55e33850e526be6", 38 - "https://deno.land/std@0.129.0/async/deadline.ts": "48ac998d7564969f3e6ec6b6f9bf0217ebd00239b1b2292feba61272d5dd58d0", 39 - "https://deno.land/std@0.129.0/async/debounce.ts": "564273ef242bcfcda19a439132f940db8694173abffc159ea34f07d18fc42620", 40 - "https://deno.land/std@0.129.0/async/deferred.ts": "bc18e28108252c9f67dfca2bbc4587c3cbf3aeb6e155f8c864ca8ecff992b98a", 41 - "https://deno.land/std@0.129.0/async/delay.ts": "cbbdf1c87d1aed8edc7bae13592fb3e27e3106e0748f089c263390d4f49e5f6c", 42 - "https://deno.land/std@0.129.0/async/mod.ts": "2240c6841157738414331f47dee09bb8c0482c5b1980b6e3234dd03515c8132f", 43 - "https://deno.land/std@0.129.0/async/mux_async_iterator.ts": "f4d1d259b0c694d381770ddaaa4b799a94843eba80c17f4a2ec2949168e52d1e", 44 - "https://deno.land/std@0.129.0/async/pool.ts": "97b0dd27c69544e374df857a40902e74e39532f226005543eabacb551e277082", 45 - "https://deno.land/std@0.129.0/async/tee.ts": "1341feb1f5b1a96f8628d0f8fc07d8c43d3813423f18a63bf1b4785568d21b1f", 46 - "https://deno.land/std@0.129.0/bytes/bytes_list.ts": "67eb118e0b7891d2f389dad4add35856f4ad5faab46318ff99653456c23b025d", 47 - "https://deno.land/std@0.129.0/bytes/equals.ts": "fc16dff2090cced02497f16483de123dfa91e591029f985029193dfaa9d894c9", 48 - "https://deno.land/std@0.129.0/bytes/mod.ts": "d3b455c0dbd4804644159d1e25946ade5ee385d2359894de49e2c6101b18b7a9", 49 - "https://deno.land/std@0.129.0/encoding/base64.ts": "c8c16b4adaa60d7a8eee047c73ece26844435e8f7f1328d74593dbb2dd58ea4f", 50 - "https://deno.land/std@0.129.0/encoding/base64url.ts": "55f9d13df02efac10c6f96169daa3e702606a64e8aa27c0295f645f198c27130", 51 - "https://deno.land/std@0.129.0/fmt/colors.ts": "30455035d6d728394781c10755351742dd731e3db6771b1843f9b9e490104d37", 52 - "https://deno.land/std@0.129.0/fmt/printf.ts": "e2c0f72146aed1efecf0c39ab928b26ae493a2278f670a871a0fbdcf36ff3379", 53 - "https://deno.land/std@0.129.0/fs/_util.ts": "0fb24eb4bfebc2c194fb1afdb42b9c3dda12e368f43e8f2321f84fc77d42cb0f", 54 - "https://deno.land/std@0.129.0/fs/ensure_dir.ts": "9dc109c27df4098b9fc12d949612ae5c9c7169507660dcf9ad90631833209d9d", 55 - "https://deno.land/std@0.129.0/fs/ensure_file.ts": "7d353e64fee3d4d1e7c6b6726a2a5e987ba402c15fb49566309042887349c545", 56 - "https://deno.land/std@0.129.0/io/buffer.ts": "bd0c4bf53db4b4be916ca5963e454bddfd3fcd45039041ea161dbf826817822b", 57 - "https://deno.land/std@0.129.0/io/files.ts": "d199ef64e918a256320ba8d8d44ae91de87c9077df8f8d6cca013f1b9fbbe285", 58 - "https://deno.land/std@0.129.0/io/readers.ts": "679471f3b9929b54393c9cd75b6bd178b4bc6d9aab5c0f1f9538f862cf4746fe", 59 - "https://deno.land/std@0.129.0/io/util.ts": "078da53bba767bec0d45f7da44411f6dbf269e51ef7fcfea5e3714e04681c674", 60 - "https://deno.land/std@0.129.0/node/_buffer.mjs": "f4a7df481d4eed06dc0151b833177d8ef74fc3a96dd4d2b073e690b6ced9474d", 61 - "https://deno.land/std@0.129.0/node/_core.ts": "568d277be2e086af996cbdd599fec569f5280e9a494335ca23ad392b130d7bb9", 62 - "https://deno.land/std@0.129.0/node/_events.mjs": "c0e3e0e290a8b81fee9d2973a529c8dcd5ebb4406782d1f91085274e2cb8490f", 63 - "https://deno.land/std@0.129.0/node/_fixed_queue.ts": "455b3c484de48e810b13bdf95cd1658ecb1ba6bcb8b9315ffe994efcde3ba5f5", 64 - "https://deno.land/std@0.129.0/node/_next_tick.ts": "64c361f6bca21df2a72dd77b84bd49d80d97a694dd3080703bc78f52146351d1", 65 - "https://deno.land/std@0.129.0/node/_process/exiting.ts": "bc9694769139ffc596f962087155a8bfef10101d03423b9dcbc51ce6e1f88fce", 66 - "https://deno.land/std@0.129.0/node/_util/_util_callbackify.ts": "79928ad80df3e469f7dcdb198118a7436d18a9f6c08bd7a4382332ad25a718cf", 67 - "https://deno.land/std@0.129.0/node/_utils.ts": "c2c352e83c4c96f5ff994b1c8246bff2abcb21bfc3f1c06162cb3af1d201e615", 68 - "https://deno.land/std@0.129.0/node/buffer.ts": "fbecbf3f237fa49bec96e97ecf56a7b92d48037b3d11219288e68943cc921600", 69 - "https://deno.land/std@0.129.0/node/events.ts": "a1d40fc0dbccc944379ef968b80ea08f9fce579e88b5057fdb64e4f0812476dd", 70 - "https://deno.land/std@0.129.0/node/internal/buffer.mjs": "6662fe7fe517329453545be34cea27a24f8ccd6d09afd4f609f11ade2b6dfca7", 71 - "https://deno.land/std@0.129.0/node/internal/crypto/keys.ts": "16ce7b15a9fc5e4e3dee8fde75dae12f3d722558d5a1a6e65a9b4f86d64a21e9", 72 - "https://deno.land/std@0.129.0/node/internal/crypto/util.mjs": "1de55a47fdbed6721b467a77ba48fdd1550c10b5eee77bbdb602eaffee365a5e", 73 - "https://deno.land/std@0.129.0/node/internal/error_codes.ts": "ac03c4eae33de3a69d6c98e8678003207eecf75a6900eb847e3fea3c8c9e6d8f", 74 - "https://deno.land/std@0.129.0/node/internal/errors.ts": "0d3a1eb03b654beb29b8354759a6902f45a840d4f957e9a3c632a24ce4c32632", 75 - "https://deno.land/std@0.129.0/node/internal/hide_stack_frames.ts": "a91962ec84610bc7ec86022c4593cdf688156a5910c07b5bcd71994225c13a03", 76 - "https://deno.land/std@0.129.0/node/internal/normalize_encoding.mjs": "3779ec8a7adf5d963b0224f9b85d1bc974a2ec2db0e858396b5d3c2c92138a0a", 77 - "https://deno.land/std@0.129.0/node/internal/util.mjs": "684653b962fae84fd2bc08997291b1a50bed09b95dcfa7d35e3c4143163e879a", 78 - "https://deno.land/std@0.129.0/node/internal/util/comparisons.ts": "680b55fe8bdf1613633bc469fa0440f43162c76dbe36af9aa2966310e1bb9f6e", 79 - "https://deno.land/std@0.129.0/node/internal/util/debuglog.ts": "99e91bdf26f6c67861031f684817e1705a5bc300e81346585b396f413387edfb", 80 - "https://deno.land/std@0.129.0/node/internal/util/inspect.mjs": "d1c2569c66a3dab45eec03208f22ad4351482527859c0011a28a6c797288a0aa", 81 - "https://deno.land/std@0.129.0/node/internal/util/types.ts": "b2dacb8f1f5d28a51c4da5c5b75172b7fcf694073ce95ca141323657e18b0c60", 82 - "https://deno.land/std@0.129.0/node/internal/validators.mjs": "a7e82eafb7deb85c332d5f8d9ffef052f46a42d4a121eada4a54232451acc49a", 83 - "https://deno.land/std@0.129.0/node/internal_binding/_libuv_winerror.ts": "801e05c2742ae6cd42a5f0fd555a255a7308a65732551e962e5345f55eedc519", 84 - "https://deno.land/std@0.129.0/node/internal_binding/_node.ts": "e4075ba8a37aef4eb5b592c8e3807c39cb49ca8653faf8e01a43421938076c1b", 85 - "https://deno.land/std@0.129.0/node/internal_binding/_utils.ts": "1c50883b5751a9ea1b38951e62ed63bacfdc9d69ea665292edfa28e1b1c5bd94", 86 - "https://deno.land/std@0.129.0/node/internal_binding/_winerror.ts": "8811d4be66f918c165370b619259c1f35e8c3e458b8539db64c704fbde0a7cd2", 87 - "https://deno.land/std@0.129.0/node/internal_binding/buffer.ts": "722c62b85f966e0777b2d98c021b60e75d7f2c2dabc43413ef37d60dbd13a5d9", 88 - "https://deno.land/std@0.129.0/node/internal_binding/constants.ts": "aff06aac49eda4234bd3a2b0b8e1fbfc67824e281c532ff9960831ab503014cc", 89 - "https://deno.land/std@0.129.0/node/internal_binding/string_decoder.ts": "5cb1863763d1e9b458bc21d6f976f16d9c18b3b3f57eaf0ade120aee38fba227", 90 - "https://deno.land/std@0.129.0/node/internal_binding/types.ts": "4c26fb74ba2e45de553c15014c916df6789529a93171e450d5afb016b4c765e7", 91 - "https://deno.land/std@0.129.0/node/internal_binding/util.ts": "90364292e2bd598ab5d105b48ca49817b6708f2d1d9cbaf08b2b3ab5ca4c90a7", 92 - "https://deno.land/std@0.129.0/node/internal_binding/uv.ts": "3821bc5e676d6955d68f581988c961d77dd28190aba5a9c59f16001a4deb34ba", 93 - "https://deno.land/std@0.129.0/node/util.ts": "7fd6933b37af89a8e64d73dc6ee1732455a59e7e6d0965311fbd73cd634ea630", 94 - "https://deno.land/std@0.129.0/node/util/types.mjs": "f9288198cacd374b41bae7e92a23179d3160f4c0eaf14e19be3a4e7057219a60", 95 - "https://deno.land/std@0.129.0/path/_constants.ts": "df1db3ffa6dd6d1252cc9617e5d72165cd2483df90e93833e13580687b6083c3", 96 - "https://deno.land/std@0.129.0/path/_interface.ts": "ee3b431a336b80cf445441109d089b70d87d5e248f4f90ff906820889ecf8d09", 97 - "https://deno.land/std@0.129.0/path/_util.ts": "c1e9686d0164e29f7d880b2158971d805b6e0efc3110d0b3e24e4b8af2190d2b", 98 - "https://deno.land/std@0.129.0/path/common.ts": "bee563630abd2d97f99d83c96c2fa0cca7cee103e8cb4e7699ec4d5db7bd2633", 99 - "https://deno.land/std@0.129.0/path/glob.ts": "cb5255638de1048973c3e69e420c77dc04f75755524cb3b2e160fe9277d939ee", 100 - "https://deno.land/std@0.129.0/path/mod.ts": "4275129bb766f0e475ecc5246aa35689eeade419d72a48355203f31802640be7", 101 - "https://deno.land/std@0.129.0/path/posix.ts": "663e4a6fe30a145f56aa41a22d95114c4c5582d8b57d2d7c9ed27ad2c47636bb", 102 - "https://deno.land/std@0.129.0/path/separator.ts": "fe1816cb765a8068afb3e8f13ad272351c85cbc739af56dacfc7d93d710fe0f9", 103 - "https://deno.land/std@0.129.0/path/win32.ts": "e7bdf63e8d9982b4d8a01ef5689425c93310ece950e517476e22af10f41a136e", 104 - "https://deno.land/std@0.129.0/streams/conversion.ts": "712585bfa0172a97fb68dd46e784ae8ad59d11b88079d6a4ab098ff42e697d21", 105 - "https://deno.land/std@0.129.0/testing/_diff.ts": "9d849cd6877694152e01775b2d93f9d6b7aef7e24bfe3bfafc4d7a1ac8e9f392", 106 - "https://deno.land/std@0.129.0/testing/asserts.ts": "0a95d9e8076dd3e7f0eeb605a67c148078b4b11f4abcd5eef115b0361b0736a2", 107 - "https://deno.land/std@0.150.0/media_types/_util.ts": "ce9b4fc4ba1c447dafab619055e20fd88236ca6bdd7834a21f98bd193c3fbfa1", 108 - "https://deno.land/std@0.150.0/media_types/mod.ts": "2d4b6f32a087029272dc59e0a55ae3cc4d1b27b794ccf528e94b1925795b3118", 109 - "https://deno.land/std@0.150.0/media_types/vendor/mime-db.v1.52.0.ts": "724cee25fa40f1a52d3937d6b4fbbfdd7791ff55e1b7ac08d9319d5632c7f5af", 110 - "https://deno.land/std@0.191.0/fmt/colors.ts": "d67e3cd9f472535241a8e410d33423980bec45047e343577554d3356e1f0ef4e", 111 - "https://deno.land/std@0.191.0/testing/_diff.ts": "1a3c044aedf77647d6cac86b798c6417603361b66b54c53331b312caeb447aea", 112 - "https://deno.land/std@0.191.0/testing/_format.ts": "a69126e8a469009adf4cf2a50af889aca364c349797e63174884a52ff75cf4c7", 113 - "https://deno.land/std@0.191.0/testing/asserts.ts": "e16d98b4d73ffc4ed498d717307a12500ae4f2cbe668f1a215632d19fcffc22f", 114 - "https://deno.land/std@0.203.0/assert/assert.ts": "9a97dad6d98c238938e7540736b826440ad8c1c1e54430ca4c4e623e585607ee", 115 - "https://deno.land/std@0.203.0/assert/assertion_error.ts": "4d0bde9b374dfbcbe8ac23f54f567b77024fb67dbb1906a852d67fe050d42f56", 116 - "https://deno.land/std@0.203.0/path/_basename.ts": "057d420c9049821f983f784fd87fa73ac471901fb628920b67972b0f44319343", 117 - "https://deno.land/std@0.203.0/path/_constants.ts": "e49961f6f4f48039c0dfed3c3f93e963ca3d92791c9d478ac5b43183413136e0", 118 - "https://deno.land/std@0.203.0/path/_dirname.ts": "355e297236b2218600aee7a5301b937204c62e12da9db4b0b044993d9e658395", 119 - "https://deno.land/std@0.203.0/path/_extname.ts": "eaaa5aae1acf1f03254d681bd6a8ce42a9cb5b7ff2213a9d4740e8ab31283664", 120 - "https://deno.land/std@0.203.0/path/_format.ts": "4a99270d6810f082e614309164fad75d6f1a483b68eed97c830a506cc589f8b4", 121 - "https://deno.land/std@0.203.0/path/_from_file_url.ts": "6eadfae2e6f63ad9ee46b26db4a1b16583055c0392acedfb50ed2fc694b6f581", 122 - "https://deno.land/std@0.203.0/path/_interface.ts": "6471159dfbbc357e03882c2266d21ef9afdb1e4aa771b0545e90db58a0ba314b", 123 - "https://deno.land/std@0.203.0/path/_is_absolute.ts": "05dac10b5e93c63198b92e3687baa2be178df5321c527dc555266c0f4f51558c", 124 - "https://deno.land/std@0.203.0/path/_join.ts": "815f5e85b042285175b1492dd5781240ce126c23bd97bad6b8211fe7129c538e", 125 - "https://deno.land/std@0.203.0/path/_normalize.ts": "a19ec8706b2707f9dd974662a5cd89fad438e62ab1857e08b314a8eb49a34d81", 126 - "https://deno.land/std@0.203.0/path/_os.ts": "30b0c2875f360c9296dbe6b7f2d528f0f9c741cecad2e97f803f5219e91b40a2", 127 - "https://deno.land/std@0.203.0/path/_parse.ts": "0f9b0ff43682dd9964eb1c4398610c4e165d8db9d3ac9d594220217adf480cfa", 128 - "https://deno.land/std@0.203.0/path/_relative.ts": "27bdeffb5311a47d85be26d37ad1969979359f7636c5cd9fcf05dcd0d5099dc5", 129 - "https://deno.land/std@0.203.0/path/_resolve.ts": "7a3616f1093735ed327e758313b79c3c04ea921808ca5f19ddf240cb68d0adf6", 130 - "https://deno.land/std@0.203.0/path/_to_file_url.ts": "a141e4a525303e1a3a0c0571fd024552b5f3553a2af7d75d1ff3a503dcbb66d8", 131 - "https://deno.land/std@0.203.0/path/_to_namespaced_path.ts": "0d5f4caa2ed98ef7a8786286df6af804b50e38859ae897b5b5b4c8c5930a75c8", 132 - "https://deno.land/std@0.203.0/path/_util.ts": "4e191b1bac6b3bf0c31aab42e5ca2e01a86ab5a0d2e08b75acf8585047a86221", 133 - "https://deno.land/std@0.203.0/path/basename.ts": "bdfa5a624c6a45564dc6758ef2077f2822978a6dbe77b0a3514f7d1f81362930", 134 - "https://deno.land/std@0.203.0/path/common.ts": "ee7505ab01fd22de3963b64e46cff31f40de34f9f8de1fff6a1bd2fe79380000", 135 - "https://deno.land/std@0.203.0/path/dirname.ts": "b6533f4ee4174a526dec50c279534df5345836dfdc15318400b08c62a62a39dd", 136 - "https://deno.land/std@0.203.0/path/extname.ts": "62c4b376300795342fe1e4746c0de518b4dc9c4b0b4617bfee62a2973a9555cf", 137 - "https://deno.land/std@0.203.0/path/format.ts": "110270b238514dd68455a4c54956215a1aff7e37e22e4427b7771cefe1920aa5", 138 - "https://deno.land/std@0.203.0/path/from_file_url.ts": "9f5cb58d58be14c775ec2e57fc70029ac8b17ed3bd7fe93e475b07280adde0ac", 139 - "https://deno.land/std@0.203.0/path/glob.ts": "593e2c3573883225c25c5a21aaa8e9382a696b8e175ea20a3b6a1471ad17aaed", 140 - "https://deno.land/std@0.203.0/path/is_absolute.ts": "0b92eb35a0a8780e9f16f16bb23655b67dace6a8e0d92d42039e518ee38103c1", 141 - "https://deno.land/std@0.203.0/path/join.ts": "31c5419f23d91655b08ec7aec403f4e4cd1a63d39e28f6e42642ea207c2734f8", 142 - "https://deno.land/std@0.203.0/path/mod.ts": "6e1efb0b13121463aedb53ea51dabf5639a3172ab58c89900bbb72b486872532", 143 - "https://deno.land/std@0.203.0/path/normalize.ts": "6ea523e0040979dd7ae2f1be5bf2083941881a252554c0f32566a18b03021955", 144 - "https://deno.land/std@0.203.0/path/parse.ts": "be8de342bb9e1924d78dc4d93c45215c152db7bf738ec32475560424b119b394", 145 - "https://deno.land/std@0.203.0/path/posix.ts": "0a1c1952d132323a88736d03e92bd236f3ed5f9f079e5823fae07c8d978ee61b", 146 - "https://deno.land/std@0.203.0/path/relative.ts": "8bedac226afd360afc45d451a6c29fabceaf32978526bcb38e0c852661f66c61", 147 - "https://deno.land/std@0.203.0/path/resolve.ts": "133161e4949fc97f9ca67988d51376b0f5eef8968a6372325ab84d39d30b80dc", 148 - "https://deno.land/std@0.203.0/path/separator.ts": "40a3e9a4ad10bef23bc2cd6c610291b6c502a06237c2c4cd034a15ca78dedc1f", 149 - "https://deno.land/std@0.203.0/path/to_file_url.ts": "00e6322373dd51ad109956b775e4e72e5f9fa68ce2c6b04e4af2a6eed3825d31", 150 - "https://deno.land/std@0.203.0/path/to_namespaced_path.ts": "1b1db3055c343ab389901adfbda34e82b7386bcd1c744d54f9c1496ee0fd0c3d", 151 - "https://deno.land/std@0.203.0/path/win32.ts": "8b3f80ef7a462511d5e8020ff490edcaa0a0d118f1b1e9da50e2916bdd73f9dd", 152 - "https://deno.land/std@0.52.0/fmt/colors.ts": "ec9d653672a9a3c7b6eafe53c5bc797364a2db2dcf766ab649c1155fea7a80b2", 153 - "https://deno.land/x/crc32@v0.2.0/mod.ts": "de7a3fa2d4ef24b96fc21e1cc4d2d65d1d2b1dcea92f63960e3e11bfa82df0fa", 154 - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts": "79cc758901d20a3573d7e3cc2db9f0a5fe56833f4d9befcedc072b94d542eec7", 155 - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/buildspec.ts": "fb07cbbf9473586cea66c0c508412080c2d4ba4e7f4ea0985661afeed445710b", 156 - "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/src/spec.ts": "c0ce4c6e2685e23a3abdeb9fc18012253199dae355b06189d8248b052301a63e", 157 - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts": "6f3c62419b96251dd1b5d8d6a172c0a8724a73b7feec786e540f51f0c8a0f0fd", 158 - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/config.ts": "619f4c64dad9b510c5788d4939a8afe013cb7dfc993dfd32f2ff4d0a2140075e", 159 - "https://deno.land/x/fluent_azure_pipelines@v0.2.0/src/spec.ts": "cab6e4a6afb0f16e6c406cfab87264a963734720c468532c4f778228d1f1758d", 160 - "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts": "6a885bf35dbe08a7e971aa105763d724dd2a09c237b6292c9cd5de540237af37", 161 - "https://deno.land/x/fluent_circleci@v0.2.5/src/config.ts": "d7e9902b4c2fddfa61ff6a509f3a09adee161fae9f93029dcbc8ec7a7bbd990b", 162 - "https://deno.land/x/fluent_circleci@v0.2.5/src/job.ts": "b6ffb66ef10cf0e26460a88e1614ef864b606571e8d72376eeb09254f66a9926", 163 - "https://deno.land/x/fluent_circleci@v0.2.5/src/spec.ts": "eda462e9ff535dbc7d3eb7e47253948d40ebaaf34d964e0931a6a25cdd823736", 164 - "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts": "dc62b622791da77bc27f68e33cba618983a0770a9a12dcc9e0f9a61161bb90e5", 165 - "https://deno.land/x/fluent_github_actions@v0.2.1/src/event.ts": "d44d42356a04aea7ba64ff9e9a12090f477605c27a940bbf80aba612e4e96d1e", 166 - "https://deno.land/x/fluent_github_actions@v0.2.1/src/job_spec.ts": "93aa5b8b79cd8baaf875901322c4c38c27d4458439a831cb0ad86401b207a3dc", 167 - "https://deno.land/x/fluent_github_actions@v0.2.1/src/step_spec.ts": "b399949d1fd9c45873cdda70d82c92e3d9d96ba9a1d5749f3010a1f242b20e35", 168 - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow.ts": "c9e3b7b3a59f7edff958eae8f27a8542f2a24889ea27c8aa016d0c0b0ca416c6", 169 - "https://deno.land/x/fluent_github_actions@v0.2.1/src/workflow_spec.ts": "b5c696dc70ee3f777a565197c6a3a379d87d026e12d59942fef5b9dc72124c3a", 170 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts": "3becefe569f5c9814dffa1b534794a42b948481753a5903fa1b48d5337206ced", 171 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/environment.ts": "f12ee4fb50e5100fccec29dc1d35aa430bfe8373e84286a8ab9f7b8e178f14e3", 172 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci.ts": "ef36465c41412ae94b919cfcb80b99ec1c04536dbf42ad09cd73abf3ea4d52a6", 173 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/gitlabci_spec.ts": "37f4ecef3ea414f57c54a360bc0178f5fad21b4a9db59d29d1961cd368febaed", 174 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/index.ts": "b5e374a24e3bca1d6fead0861f2c1b1e09e087a17e59297263f681ee71c972fe", 175 - "https://deno.land/x/fluent_gitlab_ci@v0.4.2/src/job.ts": "65a5be7f5816846919907aab00530044b571570a54a8a0bc967f4269a2ce99b7", 176 - "https://deno.land/x/spinners@v1.1.2/mod.ts": "ed5b3562d4ea6c6887bc7e9844612b08a3bc3a3678ca77cc7dfdf461c362751e", 177 - "https://deno.land/x/spinners@v1.1.2/spinner-types.ts": "c67e6962a0c738aa57b4d3ad9fe06c8c0131f93360acbf95456f2ba200fd8826", 178 - "https://deno.land/x/spinners@v1.1.2/terminal-spinner.ts": "1cf0c38a423781734e2e538323c1992027830d741e90f0b81f532e5bc993d035", 179 - "https://deno.land/x/spinners@v1.1.2/util.ts": "7083203bedbda2e6144a14a7dd093747a7a01e73d95637c888bae8ac22a1c58b", 180 - "https://deno.land/x/xhr@0.3.0/mod.ts": "094aacd627fd9635cd942053bf8032b5223b909858fa9dc8ffa583752ff63b20", 181 - "https://deno.land/x/zod@v3.22.1/ZodError.ts": "4de18ff525e75a0315f2c12066b77b5c2ae18c7c15ef7df7e165d63536fdf2ea", 182 - "https://deno.land/x/zod@v3.22.1/errors.ts": "5285922d2be9700cc0c70c95e4858952b07ae193aa0224be3cbd5cd5567eabef", 183 - "https://deno.land/x/zod@v3.22.1/external.ts": "a6cfbd61e9e097d5f42f8a7ed6f92f93f51ff927d29c9fbaec04f03cbce130fe", 184 - "https://deno.land/x/zod@v3.22.1/helpers/enumUtil.ts": "54efc393cc9860e687d8b81ff52e980def00fa67377ad0bf8b3104f8a5bf698c", 185 - "https://deno.land/x/zod@v3.22.1/helpers/errorUtil.ts": "7a77328240be7b847af6de9189963bd9f79cab32bbc61502a9db4fe6683e2ea7", 186 - "https://deno.land/x/zod@v3.22.1/helpers/parseUtil.ts": "f791e6e65a0340d85ad37d26cd7a3ba67126cd9957eac2b7163162155283abb1", 187 - "https://deno.land/x/zod@v3.22.1/helpers/partialUtil.ts": "998c2fe79795257d4d1cf10361e74492f3b7d852f61057c7c08ac0a46488b7e7", 188 - "https://deno.land/x/zod@v3.22.1/helpers/typeAliases.ts": "0fda31a063c6736fc3cf9090dd94865c811dfff4f3cb8707b932bf937c6f2c3e", 189 - "https://deno.land/x/zod@v3.22.1/helpers/util.ts": "8baf19b19b2fca8424380367b90364b32503b6b71780269a6e3e67700bb02774", 190 - "https://deno.land/x/zod@v3.22.1/index.ts": "d27aabd973613985574bc31f39e45cb5d856aa122ef094a9f38a463b8ef1a268", 191 - "https://deno.land/x/zod@v3.22.1/locales/en.ts": "a7a25cd23563ccb5e0eed214d9b31846305ddbcdb9c5c8f508b108943366ab4c", 192 - "https://deno.land/x/zod@v3.22.1/mod.ts": "64e55237cb4410e17d968cd08975566059f27638ebb0b86048031b987ba251c4", 193 - "https://deno.land/x/zod@v3.22.1/types.ts": "4edc1823385f446532c8c9f676d84550c6dc54b17135e34508576647d9612d0e", 194 - "https://esm.sh/@dagger.io/dagger@0.8.4": "424bddc1457c1fc4975c978425730be068b5414e92dca7a64f2d80e2123c4719", 195 - "https://esm.sh/graphql-tag@2.12.6": "2d8f017bc251d9e7346bafc3f3aef4b65f7fdc302c6e0d085e3359f44c893068", 196 - "https://esm.sh/nanoid@4.0.2": "df5af492771eb7ed903cec5e5d8ff721bc75e6c09ddf9fc9263215c8497961f4", 197 - "https://esm.sh/stringify-tree@1.1.1": "a0515b0f4fe97a6972047a588b7982592d9079e7aeac3323b0d26448a757cf84", 198 - "https://esm.sh/v128/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 199 - "https://esm.sh/v128/graphql-request@6.1.0": "17f00c323eb825811ce14e2b0e88a0c873acb666c382ac963d1edeb03e01f372", 200 - "https://esm.sh/v128/graphql-request@6.1.0/denonext/graphql-request.mjs": "0b15f49d44489423ae6f06004725b6d050b6359da4969e6569bd6ad45065bd94", 201 - "https://esm.sh/v128/graphql@16.7.1/denonext/graphql.mjs": "418ad7c07b0f2d687f33b6275d3b5f317f4afbef1f462f318229f458dff45416", 202 - "https://esm.sh/v128/yaml@2.3.1": "8ef3aee065e93b03cebf8fd5a3418bc30131344b7f2b8c8ae27bf9f277416087", 203 - "https://esm.sh/v128/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", 204 - "https://esm.sh/v131/yaml@2.3.1": "1fe2490feb3d9c6d2c71c64dbdbed90acd4164b00628b3c68a311b6731ca38b5", 205 - "https://esm.sh/v131/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", 206 - "https://esm.sh/v132/@dagger.io/dagger@0.8.4/denonext/dagger.mjs": "a090c18168360a715fcc7ff731cc6cf940e8d08b8a5b18fa80983b47666118a9", 207 - "https://esm.sh/v132/adm-zip@0.5.10/denonext/adm-zip.mjs": "bcdc3b866e0817ac4f1b2a3021dd0a9aafa2c65f1fd254511706b7924fa8b0b7", 208 - "https://esm.sh/v132/chownr@2.0.0/denonext/chownr.mjs": "30b8f17084dfbe475a5052b615f706b06ddd17dca0535103340d485c6b94e952", 209 - "https://esm.sh/v132/cross-fetch@3.1.8/denonext/cross-fetch.mjs": "8fba9e7c3fbaf0d2168beb63ce0cd21b5bfbfbd77e2fcbf8d957d533a71222f6", 210 - "https://esm.sh/v132/cross-spawn@7.0.3/denonext/cross-spawn.mjs": "7c92cdafd952c699fe01eb7a0c29c7cc112c546068ff757cb8832fa110499f11", 211 - "https://esm.sh/v132/env-paths@3.0.0/denonext/env-paths.mjs": "77984a05eb16450087f25060a070ed500ec546719d471143e16d976ca73ca956", 212 - "https://esm.sh/v132/execa@7.2.0/denonext/execa.mjs": "5aa1c5a07843e56fd4ff4e0728d11941122d9f3c4bc37600971aa8e75c86d3a6", 213 - "https://esm.sh/v132/fs-minipass@2.1.0/denonext/fs-minipass.mjs": "18bcb6852f74c79ad50261e900a8c5daf2e7c38ce6662859e4f6f61d18daa6ed", 214 - "https://esm.sh/v132/get-stream@6.0.1/denonext/get-stream.mjs": "a947a16f8cb3052fd654a84f8b36b40ce96b6a5acfb3ad4ab69d814bcf3351fb", 215 - "https://esm.sh/v132/graphql-request@6.1.0/denonext/graphql-request.mjs": "796e05cc81ad339ef182de57452ffc00e9fef874df14fbba41338ca893499733", 216 - "https://esm.sh/v132/graphql-tag@2.12.6/denonext/graphql-tag.mjs": "ca4302aabfeec9e4335103f1a3eeaf26277af50b828a3bcde7f262fcd4e98e1d", 217 - "https://esm.sh/v132/graphql@16.8.0/denonext/graphql.mjs": "e10e0db78cbbef8215b2665e5ed46cbb28fc61ecdb560f9e8d304a610f51f5bc", 218 - "https://esm.sh/v132/human-signals@4.3.1/denonext/human-signals.mjs": "3889110cedd907804443d018cffe0a1d892d5e7467661376caf967feff55cbe9", 219 - "https://esm.sh/v132/is-stream@3.0.0/denonext/is-stream.mjs": "5c8b65f2fa051c4b18e88bbae11dac8bba9caf57752577d69bcea86d1f05c5b7", 220 - "https://esm.sh/v132/isexe@2.0.0/denonext/isexe.mjs": "3cfefd270d1bfdfb864ee98dbb8f41d150cbf480925158f4a8f0ade8a9e17d6c", 221 - "https://esm.sh/v132/lodash.flatten@4.4.0/denonext/lodash.flatten.mjs": "8e86ab607deea15cc3c1acfb5eae278ecbc5b80f24167b4e8f4c56df3278cd55", 222 - "https://esm.sh/v132/merge-stream@2.0.0/denonext/merge-stream.mjs": "2c2af22401c294158d6bff659d157e3d2c028c218cc1bd2246534a45a4c03c61", 223 - "https://esm.sh/v132/mimic-fn@4.0.0/denonext/mimic-fn.mjs": "10bcf0f2f20cbbba0c289ef7bf4d2422639bbc1c36c247be876afd6fe2d67138", 224 - "https://esm.sh/v132/minipass@3.3.6/denonext/minipass.mjs": "59bbe430514455e78cb30c389b21af66efb2bf010cda071820a17d8c76d0d1cf", 225 - "https://esm.sh/v132/minipass@5.0.0/denonext/minipass.mjs": "de0e049728f8c387b58c86439eb9d69a16b6a88756a6bc694e2fecbd7fd00401", 226 - "https://esm.sh/v132/minizlib@2.1.2/denonext/minizlib.mjs": "2e35ea8aa6cb4caa6f9b6c5b3c8684460698c868363e134af26c28d0e76ded5f", 227 - "https://esm.sh/v132/mkdirp@1.0.4/denonext/mkdirp.mjs": "091be31ee8a9c0f5f716b769bf81397ac70a587a5f2b0367e1e3bda26f5a8af7", 228 - "https://esm.sh/v132/nanoid@4.0.2/denonext/nanoid.mjs": "4f26e89bc0867e6a838069435b3d75af305017d87ce5b51c9d6edc680954b52f", 229 - "https://esm.sh/v132/node-color-log@10.0.2/denonext/node-color-log.mjs": "2504391bd0ce1dd4c2bf0ed0b839b8a3ad84c028d9dd17cc58dccd2e14dacfde", 230 - "https://esm.sh/v132/node_fetch.js": "b11355358cf61343a3c30bd5942df60a3586d13e2c979b515164bfe851662798", 231 - "https://esm.sh/v132/npm-run-path@5.1.0/denonext/npm-run-path.mjs": "b97d372a504bcca269c98f5d13ba0671e47230aaaaa36c3554b4a705085044df", 232 - "https://esm.sh/v132/onetime@6.0.0/denonext/onetime.mjs": "c0be3fa6d700bb157f9a710aaf23df049f70c6a7d7e66a7d76568c5177267c51", 233 - "https://esm.sh/v132/original-fs@1.2.0/denonext/original-fs.mjs": "2b1098818e54d2c6748ff5b0dd9ea5f6a61b4b6d0f63fb625f21773d11cfc667", 234 - "https://esm.sh/v132/path-key@3.1.1/denonext/path-key.mjs": "add83c631278b7df9b33ae84e41142db88bb291295bcc27eb4e77a1cbdfa71d0", 235 - "https://esm.sh/v132/path-key@4.0.0/denonext/path-key.mjs": "2c2e3922bd0e6e414fa2752ff800bdc6b9208035ce797fa22e49b859f8259417", 236 - "https://esm.sh/v132/shebang-command@2.0.0/denonext/shebang-command.mjs": "35a3eae8fe5ccaab6598ba16e81bfc06bc1b46128028cd4cf76d63786dcd54aa", 237 - "https://esm.sh/v132/shebang-regex@3.0.0/denonext/shebang-regex.mjs": "03983ba59dd2cba9402935e21b46d05f5249364cba9f5757aef23c6c2fea65b9", 238 - "https://esm.sh/v132/signal-exit@3.0.7/denonext/signal-exit.mjs": "2a176e5f9b351fa8057213c627a1503d63bf308b64447ef47f1ca6fbb2a91c81", 239 - "https://esm.sh/v132/stringify-tree@1.1.1/denonext/stringify-tree.mjs": "eaa9333a5219638ad170d12e12603ae00ae80fc8bf02cc112cfec7294e6bcb43", 240 - "https://esm.sh/v132/strip-final-newline@3.0.0/denonext/strip-final-newline.mjs": "03d9be4e8a249d63cbbddeb2fb675a1bbbcb335283e604d4ce56c88c90e6f102", 241 - "https://esm.sh/v132/tar@6.2.0/denonext/tar.mjs": "f55c2f94c0ba1123048c9e3fa0af3a2bebac3af5a9895610865f05ae4d0b7f58", 242 - "https://esm.sh/v132/tslib@2.6.2/denonext/tslib.mjs": "29782bcd3139f77ec063dc5a9385c0fff4a8d0a23b6765c73d9edeb169a04bf1", 243 - "https://esm.sh/v132/which@2.0.2/denonext/which.mjs": "7482079af785ec16137592b26d53cb2808b05979559f5d0d9d036a80c6b1636e", 244 - "https://esm.sh/v132/yallist@4.0.0/denonext/yallist.mjs": "61f180d807dda50bac17028eda05d5722a3fecef6e98a9064e2353ea6864fd82", 245 - "https://esm.sh/v132/yaml@2.3.1/denonext/yaml.mjs": "71f677b4bfc69271af9d98db5194e354f9a1863955e208e26d32a9ef78bd89f5", 246 - "https://esm.sh/yaml@v2.3.1": "5471fa3592a8a9d1a4a3d8cacf54070b01aedaca82f14fdbbdd056a491db00ec", 247 - "https://nix.fluentci.io/v0.5.1/deps.ts": "d2fee07fcb79b609f64f988990ad5d67c7bf17455f75dcbf1b3bbfa5de7c73b2", 248 - "https://nix.fluentci.io/v0.5.1/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", 249 - "https://nix.fluentci.io/zenith/deps.ts": "a8fd3aa32faea5de2779cc6494471b4fd9588f039d199ff1a1ff1b00343aef26", 250 - "https://nix.fluentci.io/zenith/src/dagger/steps.ts": "b766f4fa9624a032e7af884a5ca47bc666a529c4a472d38b74b55ca0d63cf81d", 251 - "https://sdk.fluentci.io/v0.1.9/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", 252 - "https://sdk.fluentci.io/v0.1.9/mod.ts": "a3c03bdb97c5a3b998c7c9f616c7b00d4268013c3b16e8a90c1a36a85529d841", 253 - "https://sdk.fluentci.io/v0.1.9/src/client.ts": "a8dd54861feccd11a53df39b2d45bfb3b2a8a3dff509f5700c41b517d4dff44d", 254 - "https://sdk.fluentci.io/v0.1.9/src/connect.ts": "1bb42b4e0c5073bb2125b90f1d7d08a66fcad9ad8c453924b944be72d3a56c98", 255 - "https://sdk.fluentci.io/v0.1.9/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", 256 - "https://sdk.fluentci.io/v0.1.9/src/utils.ts": "394d131cfd465f0f3d8f876237f3bad1ab4dba73b9b7a396ee705d02aee40c16", 257 - "https://sdk.fluentci.io/z1/deps.ts": "1b036b7614a602b11e062a6911f26a6e2ac4e470cc74ac230125afd466cc77ea", 258 - "https://sdk.fluentci.io/z1/mod.ts": "261ba81a4728f5def4e327a5cd80664ea8449515a2f4eea5f3f416acae39a1fa", 259 - "https://sdk.fluentci.io/z1/src/client.ts": "dde6d20c41df43e5bb7763782eb3702a8d830a827444d1fb388fc574b2e6a64c", 260 - "https://sdk.fluentci.io/z1/src/connect.ts": "4aff111c403cf78672384a10214a9885e08319dde579ec458f98a7bb04874101", 261 - "https://sdk.fluentci.io/z1/src/context.ts": "2939ff58d0a79d7377d5553e725c9a2110a0013035a5a57abe9a9a5da975c4ce", 262 - "https://sdk.fluentci.io/z1/src/utils.ts": "5dcd6d83553930502069d067ff42bc44698e22c23426fdb78630c4b39769d308" 263 - } 264 - }
-34
.fluentci/example/.fluentci/deps.ts
··· 1 - export { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import Client from "https://sdk.fluentci.io/z1/mod.ts"; 3 - export default Client; 4 - 5 - export { 6 - connect, 7 - uploadContext, 8 - CacheSharingMode, 9 - } from "https://sdk.fluentci.io/z1/mod.ts"; 10 - export { brightGreen } from "https://deno.land/std@0.191.0/fmt/colors.ts"; 11 - export { withDevbox } from "https://nix.fluentci.io/zenith/src/dagger/steps.ts"; 12 - export { stringifyTree } from "https://esm.sh/stringify-tree@1.1.1"; 13 - import gql from "https://esm.sh/graphql-tag@2.12.6"; 14 - export { gql }; 15 - 16 - export { 17 - arg, 18 - queryType, 19 - stringArg, 20 - intArg, 21 - nonNull, 22 - makeSchema, 23 - } from "npm:nexus"; 24 - export { 25 - dirname, 26 - join, 27 - resolve, 28 - } from "https://deno.land/std@0.203.0/path/mod.ts"; 29 - 30 - export * as FluentGitlabCI from "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts"; 31 - export * as FluentGithubActions from "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts"; 32 - export * as FluentCircleCI from "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts"; 33 - export * as FluentAzurePipelines from "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts"; 34 - export * as FluentAWSCodePipeline from "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts";
-24
.fluentci/example/.fluentci/example/.github/workflows/tests.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Test 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - test: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Tests and Build 24 - run: dagger run fluentci rust_pipeline test build
-1
.fluentci/example/.fluentci/example/.gitignore
··· 1 - target/
-7
.fluentci/example/.fluentci/example/Cargo.lock
··· 1 - # This file is automatically @generated by Cargo. 2 - # It is not intended for manual editing. 3 - version = 3 4 - 5 - [[package]] 6 - name = "example" 7 - version = "0.1.0"
-8
.fluentci/example/.fluentci/example/Cargo.toml
··· 1 - [package] 2 - name = "example" 3 - version = "0.1.0" 4 - edition = "2021" 5 - 6 - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 - 8 - [dependencies]
-5
.fluentci/example/.fluentci/example/build.gql
··· 1 - { 2 - rust { 3 - build(src: ".") 4 - } 5 - }
-14
.fluentci/example/.fluentci/example/src/lib.rs
··· 1 - pub fn add(left: usize, right: usize) -> usize { 2 - left + right 3 - } 4 - 5 - #[cfg(test)] 6 - mod tests { 7 - use super::*; 8 - 9 - #[test] 10 - fn it_works() { 11 - let result = add(2, 2); 12 - assert_eq!(result, 4); 13 - } 14 - }
-5
.fluentci/example/.fluentci/example/test.gql
··· 1 - { 2 - rust { 3 - test(src: ".") 4 - } 5 - }
-28
.fluentci/example/.fluentci/fixtures/.gitlab-ci.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci 2 - 3 - .docker: 4 - image: denoland/deno:alpine 5 - services: 6 - - docker:${DOCKER_VERSION}-dind 7 - variables: 8 - DOCKER_HOST: tcp://docker:2376 9 - DOCKER_TLS_VERIFY: "1" 10 - DOCKER_TLS_CERTDIR: /certs 11 - DOCKER_CERT_PATH: /certs/client 12 - DOCKER_DRIVER: overlay2 13 - DOCKER_VERSION: 20.10.16 14 - 15 - .dagger: 16 - extends: .docker 17 - before_script: 18 - - apk add docker-cli curl unzip 19 - - deno install -A -r https://cli.fluentci.io -n fluentci 20 - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - - mv bin/dagger /usr/local/bin 22 - - dagger version 23 - 24 - tests: 25 - extends: .dagger 26 - script: 27 - - fluentci run rust_pipeline test build 28 -
-22
.fluentci/example/.fluentci/fixtures/azure-pipelines.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines 2 - 3 - trigger: 4 - - main 5 - pool: 6 - name: Default 7 - vmImage: ubuntu-latest 8 - steps: 9 - - script: | 10 - curl -fsSL https://deno.land/x/install/install.sh | sh 11 - export DENO_INSTALL="$HOME/.deno" 12 - export PATH="$DENO_INSTALL/bin:$PATH" 13 - displayName: Install Deno 14 - - script: deno install -A -r https://cli.fluentci.io -n fluentci 15 - displayName: Setup Fluent CI CLI 16 - - script: | 17 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 18 - sudo mv bin/dagger /usr/local/bin 19 - dagger version 20 - displayName: Setup Dagger 21 - - script: fluentci run rust_pipeline test build 22 - displayName: Run Dagger Pipelines
-19
.fluentci/example/.fluentci/fixtures/buildspec.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline 2 - 3 - version: 0.2 4 - phases: 5 - install: 6 - commands: 7 - - curl -fsSL https://deno.land/x/install/install.sh | sh 8 - - export DENO_INSTALL="$HOME/.deno" 9 - - export PATH="$DENO_INSTALL/bin:$PATH" 10 - - deno install -A -r https://cli.fluentci.io -n fluentci 11 - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - - mv bin/dagger /usr/local/bin 13 - - dagger version 14 - build: 15 - commands: 16 - - fluentci run rust_pipeline test build 17 - post_build: 18 - commands: 19 - - echo Build completed on `date`
-26
.fluentci/example/.fluentci/fixtures/config.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci 2 - 3 - version: 2.1 4 - jobs: 5 - tests: 6 - steps: 7 - - checkout 8 - - run: sudo apt-get update && sudo apt-get install -y curl unzip 9 - - run: | 10 - curl -fsSL https://deno.land/x/install/install.sh | sh 11 - export DENO_INSTALL="$HOME/.deno" 12 - export PATH="$DENO_INSTALL/bin:$PATH" 13 - - run: deno install -A -r https://cli.fluentci.io -n fluentci 14 - - run: | 15 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 16 - sudo mv bin/dagger /usr/local/bin 17 - dagger version 18 - - run: 19 - name: Run Dagger Pipelines 20 - command: fluentci run rust_pipeline test build 21 - machine: 22 - image: ubuntu-2004:2023.07.1 23 - workflows: 24 - dagger: 25 - jobs: 26 - - tests
-24
.fluentci/example/.fluentci/fixtures/workflow.yml
··· 1 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 2 - 3 - name: Test 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - test: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Tests and Build 24 - run: fluentci run rust_pipeline test build
-139
.fluentci/example/.fluentci/gen/nexus.ts
··· 1 - /** 2 - * This file was generated by Nexus Schema 3 - * Do not make changes to this file directly 4 - */ 5 - 6 - 7 - 8 - 9 - 10 - 11 - 12 - declare global { 13 - interface NexusGen extends NexusGenTypes {} 14 - } 15 - 16 - export interface NexusGenInputs { 17 - } 18 - 19 - export interface NexusGenEnums { 20 - } 21 - 22 - export interface NexusGenScalars { 23 - String: string 24 - Int: number 25 - Float: number 26 - Boolean: boolean 27 - ID: string 28 - } 29 - 30 - export interface NexusGenObjects { 31 - Query: {}; 32 - } 33 - 34 - export interface NexusGenInterfaces { 35 - } 36 - 37 - export interface NexusGenUnions { 38 - } 39 - 40 - export type NexusGenRootTypes = NexusGenObjects 41 - 42 - export type NexusGenAllTypes = NexusGenRootTypes & NexusGenScalars 43 - 44 - export interface NexusGenFieldTypes { 45 - Query: { // field return type 46 - build: string | null; // String 47 - test: string | null; // String 48 - } 49 - } 50 - 51 - export interface NexusGenFieldTypeNames { 52 - Query: { // field return type name 53 - build: 'String' 54 - test: 'String' 55 - } 56 - } 57 - 58 - export interface NexusGenArgTypes { 59 - Query: { 60 - build: { // args 61 - src: string; // String! 62 - } 63 - test: { // args 64 - src: string; // String! 65 - } 66 - } 67 - } 68 - 69 - export interface NexusGenAbstractTypeMembers { 70 - } 71 - 72 - export interface NexusGenTypeInterfaces { 73 - } 74 - 75 - export type NexusGenObjectNames = keyof NexusGenObjects; 76 - 77 - export type NexusGenInputNames = never; 78 - 79 - export type NexusGenEnumNames = never; 80 - 81 - export type NexusGenInterfaceNames = never; 82 - 83 - export type NexusGenScalarNames = keyof NexusGenScalars; 84 - 85 - export type NexusGenUnionNames = never; 86 - 87 - export type NexusGenObjectsUsingAbstractStrategyIsTypeOf = never; 88 - 89 - export type NexusGenAbstractsUsingStrategyResolveType = never; 90 - 91 - export type NexusGenFeaturesConfig = { 92 - abstractTypeStrategies: { 93 - isTypeOf: false 94 - resolveType: true 95 - __typename: false 96 - } 97 - } 98 - 99 - export interface NexusGenTypes { 100 - context: any; 101 - inputTypes: NexusGenInputs; 102 - rootTypes: NexusGenRootTypes; 103 - inputTypeShapes: NexusGenInputs & NexusGenEnums & NexusGenScalars; 104 - argTypes: NexusGenArgTypes; 105 - fieldTypes: NexusGenFieldTypes; 106 - fieldTypeNames: NexusGenFieldTypeNames; 107 - allTypes: NexusGenAllTypes; 108 - typeInterfaces: NexusGenTypeInterfaces; 109 - objectNames: NexusGenObjectNames; 110 - inputNames: NexusGenInputNames; 111 - enumNames: NexusGenEnumNames; 112 - interfaceNames: NexusGenInterfaceNames; 113 - scalarNames: NexusGenScalarNames; 114 - unionNames: NexusGenUnionNames; 115 - allInputTypes: NexusGenTypes['inputNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['scalarNames']; 116 - allOutputTypes: NexusGenTypes['objectNames'] | NexusGenTypes['enumNames'] | NexusGenTypes['unionNames'] | NexusGenTypes['interfaceNames'] | NexusGenTypes['scalarNames']; 117 - allNamedTypes: NexusGenTypes['allInputTypes'] | NexusGenTypes['allOutputTypes'] 118 - abstractTypes: NexusGenTypes['interfaceNames'] | NexusGenTypes['unionNames']; 119 - abstractTypeMembers: NexusGenAbstractTypeMembers; 120 - objectsUsingAbstractStrategyIsTypeOf: NexusGenObjectsUsingAbstractStrategyIsTypeOf; 121 - abstractsUsingStrategyResolveType: NexusGenAbstractsUsingStrategyResolveType; 122 - features: NexusGenFeaturesConfig; 123 - } 124 - 125 - 126 - declare global { 127 - interface NexusGenPluginTypeConfig<TypeName extends string> { 128 - } 129 - interface NexusGenPluginInputTypeConfig<TypeName extends string> { 130 - } 131 - interface NexusGenPluginFieldConfig<TypeName extends string, FieldName extends string> { 132 - } 133 - interface NexusGenPluginInputFieldConfig<TypeName extends string, FieldName extends string> { 134 - } 135 - interface NexusGenPluginSchemaConfig { 136 - } 137 - interface NexusGenPluginArgConfig { 138 - } 139 - }
-34
.fluentci/example/.fluentci/import_map.json
··· 1 - { 2 - "imports": { 3 - "@fluentci.io/dagger": "https://sdk.fluentci.io/v0.1.9/mod.ts", 4 - "@dagger.io/dagger": "https://esm.sh/v128/*@dagger.io/dagger@0.8.4", 5 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 6 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 7 - "fluent_gitlab_ci": "https://deno.land/x/fluent_gitlab_ci@v0.4.2/mod.ts", 8 - "fluent_github_actions": "https://deno.land/x/fluent_github_actions@v0.2.1/mod.ts", 9 - "fluent_circleci": "https://deno.land/x/fluent_circleci@v0.2.5/mod.ts", 10 - "fluent_azure_pipelines": "https://deno.land/x/fluent_azure_pipelines@v0.2.0/mod.ts", 11 - "fluent_aws_codepipeline": "https://deno.land/x/fluent_aws_codepipeline@v0.2.3/mod.ts", 12 - "crypto": "node:crypto", 13 - "fs": "node:fs", 14 - "os": "node:os", 15 - "path": "node:path", 16 - "process": "node:process", 17 - "readline": "node:readline", 18 - "url": "node:url" 19 - }, 20 - "scopes": { 21 - "https://esm.sh/v128/": { 22 - "@lifeomic/axios-fetch": "https://esm.sh/v128/@lifeomic/axios-fetch@3.0.1", 23 - "adm-zip": "https://esm.sh/v128/adm-zip@0.5.10", 24 - "env-paths": "https://esm.sh/v128/env-paths@3.0.0", 25 - "execa": "https://esm.sh/v128/execa@7.1.1", 26 - "graphql-request": "https://esm.sh/v128/graphql-request@6.1.0", 27 - "graphql-tag": "https://esm.sh/v128/graphql-tag@2.12.6", 28 - "graphql": "https://esm.sh/v128/graphql@16.7.1", 29 - "node-color-log": "https://esm.sh/v128/node-color-log@10.0.2", 30 - "node-fetch": "https://esm.sh/v128/node-fetch@3.3.1", 31 - "tar": "https://esm.sh/v128/tar@6.1.15" 32 - } 33 - } 34 - }
-3
.fluentci/example/.fluentci/mod.ts
··· 1 - export * from "./src/dagger/index.ts"; 2 - export * as queries from "./src/dagger/queries.ts"; 3 - export { schema } from "./src/dagger/schema.ts";
-8
.fluentci/example/.fluentci/schema.graphql
··· 1 - ### This file was generated by Nexus Schema 2 - ### Do not make changes to this file directly 3 - 4 - 5 - type Query { 6 - build(src: String!): String 7 - test(src: String!): String 8 - }
-39
.fluentci/example/.fluentci/src/aws/README.md
··· 1 - # AWS CodePipeline 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - The following command will generate a `buildspec.yml` file in your project: 9 - 10 - ```bash 11 - fluentci ac init -t rust_pipeline 12 - ``` 13 - 14 - Generated file: 15 - 16 - ```yaml 17 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_aws_codepipeline 18 - 19 - version: 0.2 20 - phases: 21 - install: 22 - commands: 23 - - curl -fsSL https://deno.land/x/install/install.sh | sh 24 - - export DENO_INSTALL="$HOME/.deno" 25 - - export PATH="$DENO_INSTALL/bin:$PATH" 26 - - deno install -A -r https://cli.fluentci.io -n fluentci 27 - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 28 - - mv bin/dagger /usr/local/bin 29 - - dagger version 30 - build: 31 - commands: 32 - - fluentci run rust_pipeline test build 33 - post_build: 34 - commands: 35 - - echo Build completed on `date` 36 - 37 - ``` 38 - 39 - Feel free to edit the template generator at `.fluentci/src/aws/config.ts` to your needs.
-24
.fluentci/example/.fluentci/src/aws/config.ts
··· 1 - import { BuildSpec } from "fluent_aws_codepipeline"; 2 - 3 - export function generateYaml(): BuildSpec { 4 - const buildspec = new BuildSpec(); 5 - buildspec 6 - .phase("install", { 7 - commands: [ 8 - "curl -fsSL https://deno.land/x/install/install.sh | sh", 9 - 'export DENO_INSTALL="$HOME/.deno"', 10 - 'export PATH="$DENO_INSTALL/bin:$PATH"', 11 - "deno install -A -r https://cli.fluentci.io -n fluentci", 12 - "curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh", 13 - "mv bin/dagger /usr/local/bin", 14 - "dagger version", 15 - ], 16 - }) 17 - .phase("build", { 18 - commands: ["fluentci run rust_pipeline test build"], 19 - }) 20 - .phase("post_build", { 21 - commands: ["echo Build completed on `date`"], 22 - }); 23 - return buildspec; 24 - }
-9
.fluentci/example/.fluentci/src/aws/config_test.ts
··· 1 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import { generateYaml } from "./config.ts"; 3 - 4 - Deno.test(function generateAWSCodePipelineTest() { 5 - const buildspec = generateYaml(); 6 - const actual = buildspec.toString(); 7 - const expected = Deno.readTextFileSync("./fixtures/buildspec.yml"); 8 - assertEquals(actual, expected); 9 - });
-3
.fluentci/example/.fluentci/src/aws/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml().save("buildspec.yml");
-42
.fluentci/example/.fluentci/src/azure/README.md
··· 1 - # Azure Pipelines 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - The following command will generate a `azure-pipelines.yml` file in your project: 9 - 10 - ```bash 11 - fluentci ap init -t rust_pipeline 12 - ``` 13 - 14 - Generated file: 15 - 16 - ```yaml 17 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_azure_pipelines 18 - 19 - trigger: 20 - - main 21 - pool: 22 - name: Default 23 - vmImage: ubuntu-latest 24 - steps: 25 - - script: | 26 - curl -fsSL https://deno.land/x/install/install.sh | sh 27 - export DENO_INSTALL="$HOME/.deno" 28 - export PATH="$DENO_INSTALL/bin:$PATH" 29 - displayName: Install Deno 30 - - script: deno install -A -r https://cli.fluentci.io -n fluentci 31 - displayName: Setup Fluent CI CLI 32 - - script: | 33 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 34 - sudo mv bin/dagger /usr/local/bin 35 - dagger version 36 - displayName: Setup Dagger 37 - - script: fluentci run rust_pipeline test build 38 - displayName: Run Dagger Pipelines 39 - 40 - ``` 41 - 42 - Feel free to edit the template generator at `.fluentci/src/azure/config.ts` to your needs.
-41
.fluentci/example/.fluentci/src/azure/config.ts
··· 1 - import { AzurePipeline } from "fluent_azure_pipelines"; 2 - 3 - export function generateYaml(): AzurePipeline { 4 - const azurePipeline = new AzurePipeline(); 5 - 6 - const installDeno = `\ 7 - curl -fsSL https://deno.land/x/install/install.sh | sh 8 - export DENO_INSTALL="$HOME/.deno" 9 - export PATH="$DENO_INSTALL/bin:$PATH" 10 - `; 11 - 12 - const setupDagger = `\ 13 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 14 - sudo mv bin/dagger /usr/local/bin 15 - dagger version 16 - `; 17 - 18 - azurePipeline 19 - .trigger(["main"]) 20 - .pool({ 21 - name: "Default", 22 - vmImage: "ubuntu-latest", 23 - }) 24 - .step({ 25 - script: installDeno, 26 - displayName: "Install Deno", 27 - }) 28 - .step({ 29 - script: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - displayName: "Setup Fluent CI CLI", 31 - }) 32 - .step({ 33 - script: setupDagger, 34 - displayName: "Setup Dagger", 35 - }) 36 - .step({ 37 - script: "fluentci run rust_pipeline test build", 38 - displayName: "Run Dagger Pipelines", 39 - }); 40 - return azurePipeline; 41 - }
-9
.fluentci/example/.fluentci/src/azure/config_test.ts
··· 1 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import { generateYaml } from "./config.ts"; 3 - 4 - Deno.test(function generateAzurePipelinesTest() { 5 - const azurepipelines = generateYaml(); 6 - const actual = azurepipelines.toString(); 7 - const expected = Deno.readTextFileSync("./fixtures/azure-pipelines.yml"); 8 - assertEquals(actual, expected); 9 - });
-3
.fluentci/example/.fluentci/src/azure/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml().save("azure-pipeline.yml");
-47
.fluentci/example/.fluentci/src/circleci/README.md
··· 1 - # Circle CI 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - 9 - The following command will generate a `.circleci/config.yml` file in your project: 10 - 11 - ```bash 12 - fluentci cci init -t rust_pipeline 13 - ``` 14 - 15 - Generated file: 16 - 17 - ```yaml 18 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_circleci 19 - 20 - version: 2.1 21 - jobs: 22 - tests: 23 - steps: 24 - - checkout 25 - - run: sudo apt-get update && sudo apt-get install -y curl unzip 26 - - run: | 27 - curl -fsSL https://deno.land/x/install/install.sh | sh 28 - export DENO_INSTALL="$HOME/.deno" 29 - export PATH="$DENO_INSTALL/bin:$PATH" 30 - - run: deno install -A -r https://cli.fluentci.io -n fluentci 31 - - run: | 32 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 33 - sudo mv bin/dagger /usr/local/bin 34 - dagger version 35 - - run: 36 - name: Upload Coverage 37 - command: fluentci run rust_pipeline test build 38 - machine: 39 - image: ubuntu-2004:2023.07.1 40 - workflows: 41 - dagger: 42 - jobs: 43 - - tests 44 - 45 - ``` 46 - 47 - Feel free to edit the template generator at `.fluentci/src/circleci/config.ts` to your needs.
-37
.fluentci/example/.fluentci/src/circleci/config.ts
··· 1 - import { CircleCI, Job } from "fluent_circleci"; 2 - 3 - export function generateYaml(): CircleCI { 4 - const circleci = new CircleCI(); 5 - 6 - const tests = new Job().machine({ image: "ubuntu-2004:2023.07.1" }).steps([ 7 - "checkout", 8 - { 9 - run: "sudo apt-get update && sudo apt-get install -y curl unzip", 10 - }, 11 - { 12 - run: `\ 13 - curl -fsSL https://deno.land/x/install/install.sh | sh 14 - export DENO_INSTALL="$HOME/.deno" 15 - export PATH="$DENO_INSTALL/bin:$PATH"`, 16 - }, 17 - { 18 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 19 - }, 20 - { 21 - run: `\ 22 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 23 - sudo mv bin/dagger /usr/local/bin 24 - dagger version`, 25 - }, 26 - { 27 - run: { 28 - name: "Run Dagger Pipelines", 29 - command: "fluentci run rust_pipeline test build", 30 - }, 31 - }, 32 - ]); 33 - 34 - circleci.jobs({ tests }).workflow("dagger", ["tests"]); 35 - 36 - return circleci; 37 - }
-9
.fluentci/example/.fluentci/src/circleci/config_test.ts
··· 1 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import { generateYaml } from "./config.ts"; 3 - 4 - Deno.test(function generateCircleCITest() { 5 - const circleci = generateYaml(); 6 - const actual = circleci.toString(); 7 - const expected = Deno.readTextFileSync("./fixtures/config.yml"); 8 - assertEquals(actual, expected); 9 - });
-3
.fluentci/example/.fluentci/src/circleci/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml().save(".circleci/config.yml");
-4
.fluentci/example/.fluentci/src/dagger/index.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - import { build, test } from "./jobs.ts"; 3 - 4 - export { pipeline, build, test };
-67
.fluentci/example/.fluentci/src/dagger/jobs.ts
··· 1 - import Client, { connect } from "../../deps.ts"; 2 - 3 - export enum Job { 4 - test = "test", 5 - build = "build", 6 - } 7 - 8 - export const exclude = ["target", ".git", ".devbox", ".fluentci"]; 9 - 10 - export const test = async (src = ".", options: string[] = []) => { 11 - await connect(async (client: Client) => { 12 - const context = client.host().directory(src); 13 - const ctr = client 14 - .pipeline(Job.test) 15 - .container() 16 - .from("rust:latest") 17 - .withDirectory("/app", context, { exclude }) 18 - .withWorkdir("/app") 19 - .withMountedCache("/app/target", client.cacheVolume("target")) 20 - .withMountedCache("/root/cargo/registry", client.cacheVolume("registry")) 21 - .withExec(["cargo", "test", ...options]); 22 - 23 - const result = await ctr.stdout(); 24 - 25 - console.log(result); 26 - }); 27 - return "done"; 28 - }; 29 - 30 - export const build = async (src = ".", options: string[] = []) => { 31 - await connect(async (client: Client) => { 32 - const context = client.host().directory(src); 33 - const ctr = client 34 - .pipeline(Job.build) 35 - .container() 36 - .from("rust:latest") 37 - .withDirectory("/app", context, { exclude }) 38 - .withWorkdir("/app") 39 - .withMountedCache("/app/target", client.cacheVolume("target")) 40 - .withMountedCache("/root/cargo/registry", client.cacheVolume("registry")) 41 - .withExec(["cargo", "build", "--release", ...options]); 42 - 43 - const result = await ctr.stdout(); 44 - 45 - console.log(result); 46 - }); 47 - return "done"; 48 - }; 49 - 50 - export type JobExec = (src?: string) => 51 - | Promise<string> 52 - | (( 53 - src?: string, 54 - options?: { 55 - ignore: string[]; 56 - } 57 - ) => Promise<string>); 58 - 59 - export const runnableJobs: Record<Job, JobExec> = { 60 - [Job.test]: test, 61 - [Job.build]: build, 62 - }; 63 - 64 - export const jobDescriptions: Record<Job, string> = { 65 - [Job.test]: "Run tests", 66 - [Job.build]: "Build the project", 67 - };
-20
.fluentci/example/.fluentci/src/dagger/list_jobs.ts
··· 1 - import { brightGreen, stringifyTree } from "../../deps.ts"; 2 - import { runnableJobs, jobDescriptions, Job } from "./jobs.ts"; 3 - 4 - const tree = { 5 - name: brightGreen("rust_pipeline"), 6 - children: (Object.keys(runnableJobs) as Job[]).map((job) => ({ 7 - name: jobDescriptions[job] 8 - ? `${brightGreen(job)} - ${jobDescriptions[job]}` 9 - : brightGreen(job), 10 - children: [], 11 - })), 12 - }; 13 - 14 - console.log( 15 - stringifyTree( 16 - tree, 17 - (t) => t.name, 18 - (t) => t.children 19 - ) 20 - );
-29
.fluentci/example/.fluentci/src/dagger/pipeline.ts
··· 1 - import { uploadContext } from "../../deps.ts"; 2 - import * as jobs from "./jobs.ts"; 3 - 4 - const { build, test, exclude } = jobs; 5 - 6 - export default async function pipeline(src = ".", args: string[] = []) { 7 - if (Deno.env.has("FLUENTCI_SESSION_ID")) { 8 - await uploadContext(src, exclude); 9 - } 10 - 11 - if (args.length > 0) { 12 - await runSpecificJobs(args); 13 - return; 14 - } 15 - 16 - await test(src); 17 - await build(src); 18 - } 19 - 20 - async function runSpecificJobs(args: string[]) { 21 - for (const name of args) { 22 - // deno-lint-ignore no-explicit-any 23 - const job = (jobs as any)[name]; 24 - if (!job) { 25 - throw new Error(`Job ${name} not found`); 26 - } 27 - await job(); 28 - } 29 - }
-13
.fluentci/example/.fluentci/src/dagger/queries.ts
··· 1 - import { gql } from "../../deps.ts"; 2 - 3 - export const test = gql` 4 - query test($src: String!) { 5 - test(src: $src) 6 - } 7 - `; 8 - 9 - export const build = gql` 10 - query build($src: String!) { 11 - build(src: $src) 12 - } 13 - `;
-3
.fluentci/example/.fluentci/src/dagger/runner.ts
··· 1 - import pipeline from "./pipeline.ts"; 2 - 3 - await pipeline(".", Deno.args);
-36
.fluentci/example/.fluentci/src/dagger/schema.ts
··· 1 - import { 2 - queryType, 3 - makeSchema, 4 - dirname, 5 - join, 6 - resolve, 7 - stringArg, 8 - nonNull, 9 - } from "../../deps.ts"; 10 - 11 - import { test, build } from "./jobs.ts"; 12 - 13 - const Query = queryType({ 14 - definition(t) { 15 - t.string("test", { 16 - args: { 17 - src: nonNull(stringArg()), 18 - }, 19 - resolve: async (_root, args, _ctx) => await test(args.src), 20 - }); 21 - t.string("build", { 22 - args: { 23 - src: nonNull(stringArg()), 24 - }, 25 - resolve: async (_root, args, _ctx) => await build(args.src), 26 - }); 27 - }, 28 - }); 29 - 30 - export const schema = makeSchema({ 31 - types: [Query], 32 - outputs: { 33 - schema: resolve(join(dirname(".."), dirname(".."), "schema.graphql")), 34 - typegen: resolve(join(dirname(".."), dirname(".."), "gen", "nexus.ts")), 35 - }, 36 - });
-50
.fluentci/example/.fluentci/src/github/README.md
··· 1 - # Github Actions 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - The following command will generate a `.github/workflows/tests.yml` file in your project: 9 - 10 - ```bash 11 - fluentci gh init -t rust_pipeline 12 - ``` 13 - 14 - Or, if you already have a `.fluentci` folder (generated from `fluentci init -t rust`) in your project: 15 - 16 - ```bash 17 - fluentci gh init 18 - ``` 19 - 20 - Generated file: 21 - 22 - ```yaml 23 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_github_actions 24 - 25 - name: Test 26 - on: 27 - push: 28 - branches: 29 - - main 30 - jobs: 31 - test: 32 - runs-on: ubuntu-latest 33 - steps: 34 - - uses: actions/checkout@v2 35 - - uses: denoland/setup-deno@v1 36 - with: 37 - deno-version: v1.37 38 - - name: Setup Fluent CI CLI 39 - run: deno install -A -r https://cli.fluentci.io -n fluentci 40 - - name: Setup Dagger 41 - run: | 42 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 43 - sudo mv bin/dagger /usr/local/bin 44 - dagger version 45 - - name: Run Tests and Build 46 - run: fluentci run rust_pipeline test build 47 - 48 - ``` 49 - 50 - Feel free to edit the template generator at `.fluentci/src/github/config.ts` to your needs.
-45
.fluentci/example/.fluentci/src/github/config.ts
··· 1 - import { JobSpec, Workflow } from "fluent_github_actions"; 2 - 3 - export function generateYaml(): Workflow { 4 - const workflow = new Workflow("Test"); 5 - 6 - const push = { 7 - branches: ["main"], 8 - }; 9 - 10 - const setupDagger = `\ 11 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 12 - sudo mv bin/dagger /usr/local/bin 13 - dagger version`; 14 - 15 - const test: JobSpec = { 16 - "runs-on": "ubuntu-latest", 17 - steps: [ 18 - { 19 - uses: "actions/checkout@v2", 20 - }, 21 - { 22 - uses: "denoland/setup-deno@v1", 23 - with: { 24 - "deno-version": "v1.37", 25 - }, 26 - }, 27 - { 28 - name: "Setup Fluent CI CLI", 29 - run: "deno install -A -r https://cli.fluentci.io -n fluentci", 30 - }, 31 - { 32 - name: "Setup Dagger", 33 - run: setupDagger, 34 - }, 35 - { 36 - name: "Run Tests and Build", 37 - run: "fluentci run rust_pipeline test build", 38 - }, 39 - ], 40 - }; 41 - 42 - workflow.on({ push }).jobs({ test }); 43 - 44 - return workflow; 45 - }
-9
.fluentci/example/.fluentci/src/github/config_test.ts
··· 1 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import { generateYaml } from "./config.ts"; 3 - 4 - Deno.test(function generateGithubActionsWorkflowTest() { 5 - const workflow = generateYaml(); 6 - const actual = workflow.toString(); 7 - const expected = Deno.readTextFileSync("./fixtures/workflow.yml"); 8 - assertEquals(actual, expected); 9 - });
-3
.fluentci/example/.fluentci/src/github/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml().save(".github/workflows/tests.yml");
-48
.fluentci/example/.fluentci/src/gitlab/README.md
··· 1 - # Gitlab CI 2 - 3 - [![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%2Frust_pipeline&query=%24.version)](https://pkg.fluentci.io/rust_pipeline) 4 - [![deno module](https://shield.deno.dev/x/rust_pipeline)](https://deno.land/x/rust_pipeline) 5 - ![deno compatibility](https://shield.deno.dev/deno/^1.34) 6 - [![](https://img.shields.io/codecov/c/gh/fluent-ci-templates/rust-pipeline)](https://codecov.io/gh/fluent-ci-templates/rust-pipeline) 7 - 8 - The following command will generate a `.gitlab-ci.yml` file in your project: 9 - 10 - ```bash 11 - fluentci gl init -t rust_pipeline 12 - ``` 13 - 14 - Generated file: 15 - 16 - ```yaml 17 - 18 - # Do not edit this file directly. It is generated by https://deno.land/x/fluent_gitlab_ci 19 - 20 - .docker: 21 - image: denoland/deno:alpine 22 - services: 23 - - docker:${DOCKER_VERSION}-dind 24 - variables: 25 - DOCKER_HOST: tcp://docker:2376 26 - DOCKER_TLS_VERIFY: "1" 27 - DOCKER_TLS_CERTDIR: /certs 28 - DOCKER_CERT_PATH: /certs/client 29 - DOCKER_DRIVER: overlay2 30 - DOCKER_VERSION: 20.10.16 31 - 32 - .dagger: 33 - extends: .docker 34 - before_script: 35 - - apk add docker-cli curl unzip 36 - - deno install -A -r https://cli.fluentci.io -n fluentci 37 - - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 38 - - mv bin/dagger /usr/local/bin 39 - - dagger version 40 - 41 - tests: 42 - extends: .dagger 43 - script: 44 - - fluentci run rust_pipeline test build 45 - 46 - ``` 47 - 48 - Feel free to edit the template generator at `.fluentci/src/gitlab/config.ts` to your needs.
-34
.fluentci/example/.fluentci/src/gitlab/config.ts
··· 1 - import { GitlabCI, Job } from "fluent_gitlab_ci"; 2 - 3 - export function generateYaml(): GitlabCI { 4 - const docker = new Job() 5 - .image("denoland/deno:alpine") 6 - .services(["docker:${DOCKER_VERSION}-dind"]) 7 - .variables({ 8 - DOCKER_HOST: "tcp://docker:2376", 9 - DOCKER_TLS_VERIFY: "1", 10 - DOCKER_TLS_CERTDIR: "/certs", 11 - DOCKER_CERT_PATH: "/certs/client", 12 - DOCKER_DRIVER: "overlay2", 13 - DOCKER_VERSION: "20.10.16", 14 - }); 15 - 16 - const dagger = new Job().extends(".docker").beforeScript( 17 - ` 18 - apk add docker-cli curl unzip 19 - deno install -A -r https://cli.fluentci.io -n fluentci 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - mv bin/dagger /usr/local/bin 22 - dagger version 23 - ` 24 - ); 25 - 26 - const tests = new Job() 27 - .extends(".dagger") 28 - .script("fluentci run rust_pipeline test build"); 29 - 30 - return new GitlabCI() 31 - .addJob(".docker", docker) 32 - .addJob(".dagger", dagger) 33 - .addJob("tests", tests); 34 - }
-9
.fluentci/example/.fluentci/src/gitlab/config_test.ts
··· 1 - import { assertEquals } from "https://deno.land/std@0.191.0/testing/asserts.ts"; 2 - import { generateYaml } from "./config.ts"; 3 - 4 - Deno.test(function generateGitlabCITest() { 5 - const gitlabci = generateYaml(); 6 - const actual = gitlabci.toString(); 7 - const expected = Deno.readTextFileSync("./fixtures/.gitlab-ci.yml"); 8 - assertEquals(actual, expected); 9 - });
-3
.fluentci/example/.fluentci/src/gitlab/init.ts
··· 1 - import { generateYaml } from "./config.ts"; 2 - 3 - generateYaml().write();
-24
.fluentci/example/.github/workflows/tests.yml
··· 1 - # Do not edit this file directly. It is generated by Fluent Github Actions 2 - 3 - name: Test 4 - on: 5 - push: 6 - branches: 7 - - main 8 - jobs: 9 - test: 10 - runs-on: ubuntu-latest 11 - steps: 12 - - uses: actions/checkout@v2 13 - - uses: denoland/setup-deno@v1 14 - with: 15 - deno-version: v1.37 16 - - name: Setup Fluent CI CLI 17 - run: deno install -A -r https://cli.fluentci.io -n fluentci 18 - - name: Setup Dagger 19 - run: | 20 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.1 sh 21 - sudo mv bin/dagger /usr/local/bin 22 - dagger version 23 - - name: Run Tests and Build 24 - run: dagger run fluentci rust_pipeline test build
-1
.fluentci/example/.gitignore
··· 1 - target/
-7
.fluentci/example/Cargo.lock
··· 1 - # This file is automatically @generated by Cargo. 2 - # It is not intended for manual editing. 3 - version = 3 4 - 5 - [[package]] 6 - name = "example" 7 - version = "0.1.0"
-8
.fluentci/example/Cargo.toml
··· 1 - [package] 2 - name = "example" 3 - version = "0.1.0" 4 - edition = "2021" 5 - 6 - # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 7 - 8 - [dependencies]
-5
.fluentci/example/build.gql
··· 1 - { 2 - rust { 3 - build(src: ".") 4 - } 5 - }
-5
.fluentci/example/dagger.json
··· 1 - { 2 - "root": "", 3 - "name": "rust", 4 - "sdkRuntime": "tsiry/dagger-sdk-deno" 5 - }
-14
.fluentci/example/src/lib.rs
··· 1 - pub fn add(left: usize, right: usize) -> usize { 2 - left + right 3 - } 4 - 5 - #[cfg(test)] 6 - mod tests { 7 - use super::*; 8 - 9 - #[test] 10 - fn it_works() { 11 - let result = add(2, 2); 12 - assert_eq!(result, 4); 13 - } 14 - }
-5
.fluentci/example/test.gql
··· 1 - { 2 - rust { 3 - test(src: ".") 4 - } 5 - }
+1 -1
.fluentci/src/dagger/jobs.ts
··· 33 33 const ctr = client 34 34 .pipeline(Job.build) 35 35 .container() 36 - .from("rust:1.73-bullseye") 36 + .from("rust:1.76-bullseye") 37 37 .withExec(["apt-get", "update"]) 38 38 .withExec([ 39 39 "apt-get",
+1 -1
.github/FUNDING.yml
··· 9 9 liberapay: # Replace with a single Liberapay username 10 10 issuehunt: # Replace with a single IssueHunt username 11 11 otechie: # Replace with a single Otechie username 12 - custom: ["https://www.buymeacoffee.com/tsiry"] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 12 + custom: [] # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
+30
.github/workflows/flakestry-publish.yml
··· 1 + name: "Publish a flake to flakestry" 2 + on: 3 + push: 4 + tags: 5 + - "v?[0-9]+.[0-9]+.[0-9]+" 6 + - "v?[0-9]+.[0-9]+" 7 + workflow_dispatch: 8 + inputs: 9 + tag: 10 + description: "The existing tag to publish" 11 + type: "string" 12 + required: true 13 + jobs: 14 + publish-flake: 15 + runs-on: ubuntu-latest 16 + permissions: 17 + id-token: "write" 18 + contents: "read" 19 + steps: 20 + - uses: actions/checkout@v3 21 + - name: Setup Fluent CI 22 + uses: fluentci-io/setup-fluentci@v4 23 + - name: Publish flake 24 + run: fluentci run flakestry_pipeline publish 25 + env: 26 + VERSION: ${{ inputs.tag || github.ref_name }} 27 + GH_TOKEN: ${{ github.token }} 28 + ACTIONS_ID_TOKEN_REQUEST_TOKEN: ${{ env.ACTIONS_ID_TOKEN_REQUEST_TOKEN }} 29 + ACTIONS_ID_TOKEN_REQUEST_URL: ${{ env.ACTIONS_ID_TOKEN_REQUEST_URL }} 30 + REF: ${{ github.sha }}
+1 -9
.github/workflows/release-for-mac.yml
··· 16 16 extensions: tar.gz tar.gz.sha256 17 17 18 18 steps: 19 - - uses: denoland/setup-deno@v1 20 - with: 21 - deno-version: v1.37 22 19 - name: Setup Fluent CI CLI 23 - run: deno install -A -r https://cli.fluentci.io -n fluentci 24 - - name: Setup Dagger 25 - run: | 26 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 27 - sudo mv bin/dagger /usr/local/bin 28 - dagger version 20 + uses: fluentci-io/setup-fluentci@v4 29 21 - name: Installing needed dependencies 30 22 run: brew install protobuf 31 23 - name: Installing Rust toolchain
+1 -10
.github/workflows/release.yml
··· 13 13 extensions: tar.gz tar.gz.sha256 14 14 steps: 15 15 - uses: actions/checkout@v3 16 - - uses: denoland/setup-deno@v1 17 - with: 18 - deno-version: v1.37 19 - - name: Setup Fluent CI CLI 20 - run: deno install -A -r https://cli.fluentci.io -n fluentci 21 - - name: Setup Dagger 22 - run: | 23 - curl -L https://dl.dagger.io/dagger/install.sh | DAGGER_VERSION=0.8.8 sh 24 - sudo mv bin/dagger /usr/local/bin 25 - dagger version 16 + - uses: fluentci-io/setup-fluentci@v4 26 17 - name: Set env 27 18 run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV 28 19 - name: Build