mirror of
https://github.com/kjuulh/dagger-rs.git
synced 2025-08-18 13:03:28 +02:00
Compare commits
22 Commits
v0.2.1
...
feature/ad
Author | SHA1 | Date | |
---|---|---|---|
869de76469
|
|||
68af1696f7
|
|||
757c154002
|
|||
e16f5037dc
|
|||
df7a253bc8 | |||
2ba1ab0dff
|
|||
4ce58a418c | |||
ee0077f72f
|
|||
838ff3fbe6
|
|||
d1cce6c4c5
|
|||
3003ff9779
|
|||
7bc67f6917
|
|||
468bca4a69
|
|||
d60c8f0a79
|
|||
8fa33e9aeb
|
|||
789b0e69c8 | |||
44e125e00c
|
|||
83699de4ad
|
|||
459014b233
|
|||
d365a9f8e2
|
|||
f61afa73df
|
|||
e4f614fdbf
|
15
.github/workflows/ci.yaml
vendored
Normal file
15
.github/workflows/ci.yaml
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
name: ci
|
||||
on:
|
||||
pull_request:
|
||||
env:
|
||||
CARGO_TERM_COLOR: always
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
- name: Update rust toolchain
|
||||
run: rustup update stable && rustup default stable
|
||||
- name: Run dagger [CI]
|
||||
run: cargo run -p ci -- pr
|
6
.github/workflows/create-release.yml
vendored
6
.github/workflows/create-release.yml
vendored
@@ -16,6 +16,10 @@ jobs:
|
||||
changelog: CHANGELOG.md
|
||||
# (Optional) Create a draft release.
|
||||
# [default value: false]
|
||||
draft: true
|
||||
draft: false
|
||||
# (Required) GitHub token for creating GitHub Releases.
|
||||
token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Update rust toolchain
|
||||
run: rustup update stable && rustup default stable
|
||||
- name: Run dagger [RELEASE]
|
||||
run: cargo run -p ci -- release --version="${{github.ref_name}}"
|
||||
|
23
.github/workflows/create-tag.yml
vendored
23
.github/workflows/create-tag.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: Deploy
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- "main"
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Code
|
||||
uses: actions/checkout@v3
|
||||
- name: Get Next Version
|
||||
id: semver
|
||||
uses: ietf-tools/semver-action@v1
|
||||
with:
|
||||
token: ${{ github.token }}
|
||||
branch: main
|
||||
- uses: rickstaa/action-create-tag@v1
|
||||
with:
|
||||
tag: ${{ steps.semver.outputs.next }}
|
||||
message: ${{ steps.semver.outputs.next }}
|
||||
github_token: ${{ github.token }}
|
78
CHANGELOG.md
78
CHANGELOG.md
@@ -2,3 +2,81 @@
|
||||
|
||||
First actual useful version of dagger-sdk. contains code for codegen, cli, and
|
||||
core.
|
||||
|
||||
## 0.2.6 - 2023-02-17
|
||||
|
||||
With releaser
|
||||
|
||||
## v0.2.6 (2023-02-17)
|
||||
|
||||
## v0.2.5 (2023-02-17)
|
||||
|
||||
## v0.2.4 (2023-02-17)
|
||||
|
||||
## v0.2.3 (2023-02-17)
|
||||
|
||||
## v0.2.2 (2023-02-17)
|
||||
|
||||
## v0.2.1 (2023-02-18)
|
||||
|
||||
### New Features
|
||||
|
||||
- <csr-id-68af1696f7d6bd8f9f2169075c554938e2d594ba/> color-eyre
|
||||
|
||||
### Commit Statistics
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 1 commit contributed to the release.
|
||||
- 1 commit was understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 0 issues like '(#ID)' were seen in commit messages
|
||||
|
||||
### Commit Details
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **Uncategorized**
|
||||
- color-eyre ([`68af169`](https://github.com/kjuulh/dagger-rs/commit/68af1696f7d6bd8f9f2169075c554938e2d594ba))
|
||||
</details>
|
||||
|
||||
## v0.2.0 (2023-02-17)
|
||||
|
||||
### Commit Statistics
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
- 19 commits contributed to the release over the course of 21 calendar days.
|
||||
- 0 commits were understood as [conventional](https://www.conventionalcommits.org).
|
||||
- 1 unique issue was worked on: [#6](https://github.com/kjuulh/dagger-rs/issues/6)
|
||||
|
||||
### Commit Details
|
||||
|
||||
<csr-read-only-do-not-edit/>
|
||||
|
||||
<details><summary>view details</summary>
|
||||
|
||||
* **[#6](https://github.com/kjuulh/dagger-rs/issues/6)**
|
||||
- feature/add impl ([`4a4c03f`](https://github.com/kjuulh/dagger-rs/commit/4a4c03f3c2ee7f6268c65976715e70767b4ea78d))
|
||||
* **Uncategorized**
|
||||
- move code to dagger-core ([`ec0d0b2`](https://github.com/kjuulh/dagger-rs/commit/ec0d0b22e646c97acb3ce93f3afb3ddb8590e68f))
|
||||
- add fields ([`496a687`](https://github.com/kjuulh/dagger-rs/commit/496a687bc34f7c58cc86df60c183be741b0b8a9c))
|
||||
- with codegen output ([`0bf6b0e`](https://github.com/kjuulh/dagger-rs/commit/0bf6b0e91ecc31c1f6b51338234137eb185810a0))
|
||||
- added scalars ([`e587414`](https://github.com/kjuulh/dagger-rs/commit/e5874141b3b6256b7ac2a0bf653089fa7bcc5d14))
|
||||
- split out codegen parts ([`3263f1d`](https://github.com/kjuulh/dagger-rs/commit/3263f1d589aee78065401c666533cb0cbadd06ce))
|
||||
- add collection of types ([`7433453`](https://github.com/kjuulh/dagger-rs/commit/7433453c6dd1447f8ad09c06c13a02cfac5ace05))
|
||||
- with type filtering ([`2eb5d98`](https://github.com/kjuulh/dagger-rs/commit/2eb5d98c8a28ab8dfdc4eb959809191bc483bd08))
|
||||
- with fixes ([`3eb8914`](https://github.com/kjuulh/dagger-rs/commit/3eb891422fa1404f88cfe259bddbb67e2843f1d3))
|
||||
- add todo for not dropping proc ([`b63c44a`](https://github.com/kjuulh/dagger-rs/commit/b63c44adedfa0c8ef4899198bea75a5744570a87))
|
||||
- can get schema ([`06fd730`](https://github.com/kjuulh/dagger-rs/commit/06fd730a1c23af88eaffa1dde8acdea202247f91))
|
||||
- with session ([`83ecbd2`](https://github.com/kjuulh/dagger-rs/commit/83ecbd238ab87396c9645cb93741e89a34c92766))
|
||||
- with engine ([`ee655d0`](https://github.com/kjuulh/dagger-rs/commit/ee655d02ef9670b2c0cbaa600c3e2af9f54dbf65))
|
||||
- Can download dagger ([`1e88bb3`](https://github.com/kjuulh/dagger-rs/commit/1e88bb327035bd156588716202b8d982a50c114c))
|
||||
- with out keeper ([`59e59fd`](https://github.com/kjuulh/dagger-rs/commit/59e59fd55d17f7e24ccb3c64471bf82332af5a21))
|
||||
- more allow dead_code ([`a804dd9`](https://github.com/kjuulh/dagger-rs/commit/a804dd97a6ed08ad51c8552bc5d4c845491dca1c))
|
||||
- allow dead_code ([`e2d32ed`](https://github.com/kjuulh/dagger-rs/commit/e2d32ede7621123a3db9d5e2cd3e7d276d0b5e2f))
|
||||
- without integration ([`b6186aa`](https://github.com/kjuulh/dagger-rs/commit/b6186aa9015f8ddb5d59d1346a2cdc935a26d061))
|
||||
- Add base sdk ([`078e2d9`](https://github.com/kjuulh/dagger-rs/commit/078e2d9c2c43fc2b4752ab1dcf4627c840009992))
|
||||
</details>
|
||||
|
||||
|
196
Cargo.lock
generated
196
Cargo.lock
generated
@@ -2,6 +2,15 @@
|
||||
# It is not intended for manual editing.
|
||||
version = 3
|
||||
|
||||
[[package]]
|
||||
name = "addr2line"
|
||||
version = "0.19.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97"
|
||||
dependencies = [
|
||||
"gimli",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "adler"
|
||||
version = "1.0.2"
|
||||
@@ -33,6 +42,21 @@ version = "1.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
|
||||
|
||||
[[package]]
|
||||
name = "backtrace"
|
||||
version = "0.3.67"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca"
|
||||
dependencies = [
|
||||
"addr2line",
|
||||
"cc",
|
||||
"cfg-if",
|
||||
"libc",
|
||||
"miniz_oxide",
|
||||
"object",
|
||||
"rustc-demangle",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "base64"
|
||||
version = "0.21.0"
|
||||
@@ -84,11 +108,21 @@ version = "1.0.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
|
||||
|
||||
[[package]]
|
||||
name = "ci"
|
||||
version = "0.1.0"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"color-eyre",
|
||||
"dagger-sdk 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
||||
"eyre",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "clap"
|
||||
version = "4.1.4"
|
||||
version = "4.1.6"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "f13b9c79b5d1dd500d20ef541215a6423c75829ef43117e1b4d17fd8af0b5d76"
|
||||
checksum = "ec0b0588d44d4d63a87dbd75c136c166bbfd9a86a31cb89e09906521c7d3f5e3"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"clap_lex",
|
||||
@@ -106,6 +140,33 @@ dependencies = [
|
||||
"os_str_bytes",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "color-eyre"
|
||||
version = "0.6.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "5a667583cca8c4f8436db8de46ea8233c42a7d9ae424a82d338f2e4675229204"
|
||||
dependencies = [
|
||||
"backtrace",
|
||||
"color-spantrace",
|
||||
"eyre",
|
||||
"indenter",
|
||||
"once_cell",
|
||||
"owo-colors",
|
||||
"tracing-error",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "color-spantrace"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "1ba75b3d9449ecdccb27ecbc479fdc0b87fa2dd43d2f8298f9bf0e59aacc8dce"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"owo-colors",
|
||||
"tracing-core",
|
||||
"tracing-error",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "combine"
|
||||
version = "3.8.1"
|
||||
@@ -184,10 +245,10 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "dagger-codegen"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
dependencies = [
|
||||
"convert_case",
|
||||
"dagger-core",
|
||||
"dagger-core 0.2.1",
|
||||
"eyre",
|
||||
"genco",
|
||||
"itertools",
|
||||
@@ -199,6 +260,30 @@ dependencies = [
|
||||
[[package]]
|
||||
name = "dagger-core"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "02a16b0e83ae5b88a3d4e2f3cf5149932cfcb3113e67f5579372e25d5dab5b53"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"dirs",
|
||||
"eyre",
|
||||
"flate2",
|
||||
"genco",
|
||||
"graphql-introspection-query",
|
||||
"graphql_client",
|
||||
"hex",
|
||||
"hex-literal",
|
||||
"platform-info",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"sha2",
|
||||
"tar",
|
||||
"tempfile",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dagger-core"
|
||||
version = "0.2.1"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"dirs",
|
||||
@@ -220,11 +305,12 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "dagger-rs"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
dependencies = [
|
||||
"clap",
|
||||
"color-eyre",
|
||||
"dagger-codegen",
|
||||
"dagger-core",
|
||||
"dagger-core 0.2.1",
|
||||
"dirs",
|
||||
"eyre",
|
||||
"flate2",
|
||||
@@ -247,7 +333,7 @@ name = "dagger-sdk"
|
||||
version = "0.2.0"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"dagger-core",
|
||||
"dagger-core 0.2.1",
|
||||
"eyre",
|
||||
"futures",
|
||||
"genco",
|
||||
@@ -259,6 +345,24 @@ dependencies = [
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "dagger-sdk"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "e454c49b81feeb5c4057f54223cb8d7618e5d015ed835c3f3fa231fefa04e833"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"dagger-core 0.2.0",
|
||||
"eyre",
|
||||
"futures",
|
||||
"genco",
|
||||
"gql_client",
|
||||
"pretty_assertions",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tokio",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "diff"
|
||||
version = "0.1.13"
|
||||
@@ -535,6 +639,12 @@ dependencies = [
|
||||
"wasi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "gimli"
|
||||
version = "0.27.2"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4"
|
||||
|
||||
[[package]]
|
||||
name = "gql_client"
|
||||
version = "1.0.7"
|
||||
@@ -925,6 +1035,15 @@ dependencies = [
|
||||
"libc",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "object"
|
||||
version = "0.30.3"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439"
|
||||
dependencies = [
|
||||
"memchr",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "once_cell"
|
||||
version = "1.17.0"
|
||||
@@ -991,6 +1110,12 @@ dependencies = [
|
||||
"winapi",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "owo-colors"
|
||||
version = "3.5.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f"
|
||||
|
||||
[[package]]
|
||||
name = "parking_lot"
|
||||
version = "0.12.1"
|
||||
@@ -1189,6 +1314,12 @@ dependencies = [
|
||||
"winreg",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustc-demangle"
|
||||
version = "0.1.21"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342"
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "0.36.7"
|
||||
@@ -1269,9 +1400,9 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "serde_json"
|
||||
version = "1.0.92"
|
||||
version = "1.0.93"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "7434af0dc1cbd59268aa98b4c22c131c0584d2232f6fb166efb993e2832e896a"
|
||||
checksum = "cad406b69c91885b5107daf2c29572f6c8cdb3c66826821e286c533490c0bc76"
|
||||
dependencies = [
|
||||
"itoa",
|
||||
"ryu",
|
||||
@@ -1301,6 +1432,15 @@ dependencies = [
|
||||
"digest",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "sharded-slab"
|
||||
version = "0.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
|
||||
dependencies = [
|
||||
"lazy_static",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "signal-hook-registry"
|
||||
version = "1.4.0"
|
||||
@@ -1406,6 +1546,16 @@ dependencies = [
|
||||
"syn",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thread_local"
|
||||
version = "1.1.7"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152"
|
||||
dependencies = [
|
||||
"cfg-if",
|
||||
"once_cell",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tinyvec"
|
||||
version = "1.6.0"
|
||||
@@ -1500,6 +1650,28 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a"
|
||||
dependencies = [
|
||||
"once_cell",
|
||||
"valuable",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-error"
|
||||
version = "0.2.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "d686ec1c0f384b1277f097b2f279a2ecc11afe8c133c1aabf036a27cb4cd206e"
|
||||
dependencies = [
|
||||
"tracing",
|
||||
"tracing-subscriber",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tracing-subscriber"
|
||||
version = "0.3.16"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "a6176eae26dd70d0c919749377897b54a9276bd7061339665dd68777926b5a70"
|
||||
dependencies = [
|
||||
"sharded-slab",
|
||||
"thread_local",
|
||||
"tracing-core",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
@@ -1561,6 +1733,12 @@ dependencies = [
|
||||
"percent-encoding",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "valuable"
|
||||
version = "0.1.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
|
||||
|
||||
[[package]]
|
||||
name = "vcpkg"
|
||||
version = "0.2.15"
|
||||
|
18
Cargo.toml
18
Cargo.toml
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dagger-rs"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
license-file = "LICENSE.MIT"
|
||||
@@ -11,13 +11,18 @@ publish = true
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[workspace]
|
||||
members = ["crates/dagger-codegen", "crates/dagger-sdk", "crates/dagger-core"]
|
||||
members = [
|
||||
"crates/dagger-codegen",
|
||||
"crates/dagger-sdk",
|
||||
"crates/dagger-core",
|
||||
"ci",
|
||||
]
|
||||
|
||||
[dependencies]
|
||||
dagger-codegen = { path = "crates/dagger-codegen", version = "0.2.0" }
|
||||
dagger-core = { path = "crates/dagger-core", version = "0.2.0" }
|
||||
dagger-codegen = { path = "crates/dagger-codegen", version = "^0.2.1" }
|
||||
dagger-core = { path = "crates/dagger-core", version = "^0.2.1" }
|
||||
|
||||
clap = "4.1.4"
|
||||
clap = "4.1.6"
|
||||
dirs = "4.0.0"
|
||||
eyre = "0.6.8"
|
||||
flate2 = { version = "1.0.25", features = ["zlib"] }
|
||||
@@ -32,7 +37,8 @@ hex-literal = "0.3.4"
|
||||
platform-info = "1.0.2"
|
||||
reqwest = { version = "0.11.14", features = ["stream", "blocking", "deflate"] }
|
||||
serde = { version = "1.0.152", features = ["derive"] }
|
||||
serde_json = "1.0.91"
|
||||
serde_json = "1.0.93"
|
||||
sha2 = "0.10.6"
|
||||
tar = "0.4.38"
|
||||
tempfile = "3.3.0"
|
||||
color-eyre = "0.6.2"
|
||||
|
12
ci/Cargo.toml
Normal file
12
ci/Cargo.toml
Normal file
@@ -0,0 +1,12 @@
|
||||
[package]
|
||||
name = "ci"
|
||||
version = "0.1.0"
|
||||
edition = "2021"
|
||||
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
clap = "4.1.6"
|
||||
color-eyre = "0.6.2"
|
||||
dagger-sdk = "0.2.0"
|
||||
eyre = "0.6.8"
|
189
ci/src/main.rs
Normal file
189
ci/src/main.rs
Normal file
@@ -0,0 +1,189 @@
|
||||
use std::sync::Arc;
|
||||
|
||||
use dagger_sdk::gen::{Container, HostDirectoryOpts, Query};
|
||||
|
||||
fn main() -> eyre::Result<()> {
|
||||
color_eyre::install().unwrap();
|
||||
|
||||
let matches = clap::Command::new("ci")
|
||||
.subcommand_required(true)
|
||||
.subcommand(clap::Command::new("pr"))
|
||||
.subcommand(
|
||||
clap::Command::new("release")
|
||||
.arg(clap::Arg::new("version").long("version").required(true)),
|
||||
)
|
||||
.get_matches();
|
||||
|
||||
let client = dagger_sdk::client::connect()?;
|
||||
|
||||
let base = select_base_image(client.clone());
|
||||
|
||||
match matches.subcommand() {
|
||||
Some(("pr", _)) => return validate_pr(client, base),
|
||||
Some(("release", subm)) => return release(client, base, subm),
|
||||
Some(_) => {
|
||||
panic!("invalid subcommand selected!")
|
||||
}
|
||||
None => {
|
||||
panic!("no command selected!")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fn release(
|
||||
client: Arc<Query>,
|
||||
base: Container,
|
||||
subm: &clap::ArgMatches,
|
||||
) -> Result<(), color_eyre::Report> {
|
||||
let version = subm.get_one::<String>("version").unwrap();
|
||||
|
||||
let container = base
|
||||
.with_exec(
|
||||
vec!["cargo".into(), "install".into(), "cargo-release".into()],
|
||||
None,
|
||||
)
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"release".into(),
|
||||
"version".into(),
|
||||
"--workspace".into(),
|
||||
"--execute".into(),
|
||||
"--no-confirm".into(),
|
||||
version.clone(),
|
||||
],
|
||||
None,
|
||||
)
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"release".into(),
|
||||
"replace".into(),
|
||||
"--workspace".into(),
|
||||
"--execute".into(),
|
||||
"--no-confirm".into(),
|
||||
],
|
||||
None,
|
||||
)
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"release".into(),
|
||||
"publish".into(),
|
||||
"--workspace".into(),
|
||||
"--execute".into(),
|
||||
"--no-verify".into(),
|
||||
"--no-confirm".into(),
|
||||
],
|
||||
None,
|
||||
);
|
||||
let exit = container.exit_code();
|
||||
if exit != 0 {
|
||||
eyre::bail!("container failed with non-zero exit code");
|
||||
}
|
||||
|
||||
println!("validating pr succeeded!");
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
fn get_dependencies(client: Arc<Query>) -> Container {
|
||||
let cargo_dir = client.host().directory(
|
||||
".".into(),
|
||||
Some(HostDirectoryOpts {
|
||||
exclude: None,
|
||||
include: Some(vec![
|
||||
"**/Cargo.lock".into(),
|
||||
"**/Cargo.toml".into(),
|
||||
"**/main.rs".into(),
|
||||
"**/lib.rs".into(),
|
||||
]),
|
||||
}),
|
||||
);
|
||||
|
||||
let src_dir = client.host().directory(
|
||||
".".into(),
|
||||
Some(HostDirectoryOpts {
|
||||
exclude: Some(vec!["target/".into()]),
|
||||
include: None,
|
||||
}),
|
||||
);
|
||||
|
||||
let cache_cargo_index_dir = client.cache_volume("cargo_index".into());
|
||||
let cache_cargo_deps = client.cache_volume("cargo_deps".into());
|
||||
|
||||
let base_image = client
|
||||
.container(None)
|
||||
.from("rust:latest".into())
|
||||
.with_workdir("app".into())
|
||||
.with_exec(
|
||||
vec!["cargo".into(), "install".into(), "cargo-chef".into()],
|
||||
None,
|
||||
);
|
||||
|
||||
let recipe = base_image
|
||||
.with_mounted_directory(".".into(), cargo_dir.id())
|
||||
.with_mounted_cache(
|
||||
"~/.cargo/.package-cache".into(),
|
||||
cache_cargo_index_dir.id(),
|
||||
None,
|
||||
)
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"chef".into(),
|
||||
"prepare".into(),
|
||||
"--recipe-path".into(),
|
||||
"recipe.json".into(),
|
||||
],
|
||||
None,
|
||||
)
|
||||
.file("/app/recipe.json".into());
|
||||
|
||||
let builder_start = base_image
|
||||
.with_mounted_file("/app/recipe.json".into(), recipe.id())
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"chef".into(),
|
||||
"cook".into(),
|
||||
"--release".into(),
|
||||
"--workspace".into(),
|
||||
"--recipe-path".into(),
|
||||
"recipe.json".into(),
|
||||
],
|
||||
None,
|
||||
)
|
||||
.with_mounted_cache("/app/".into(), cache_cargo_deps.id(), None)
|
||||
.with_mounted_directory("/app/".into(), src_dir.id())
|
||||
.with_exec(
|
||||
vec![
|
||||
"cargo".into(),
|
||||
"build".into(),
|
||||
"--all".into(),
|
||||
"--release".into(),
|
||||
],
|
||||
None,
|
||||
);
|
||||
|
||||
return builder_start;
|
||||
}
|
||||
|
||||
fn select_base_image(client: Arc<Query>) -> Container {
|
||||
let src_dir = get_dependencies(client.clone());
|
||||
|
||||
src_dir
|
||||
}
|
||||
|
||||
fn validate_pr(_client: Arc<Query>, container: Container) -> eyre::Result<()> {
|
||||
//let container = container.with_exec(vec!["cargo".into(), "test".into(), "--all".into()], None);
|
||||
|
||||
let exit = container.exit_code();
|
||||
if exit != 0 {
|
||||
eyre::bail!("container failed with non-zero exit code");
|
||||
}
|
||||
|
||||
println!("validating pr succeeded!");
|
||||
|
||||
Ok(())
|
||||
}
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dagger-codegen"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
license-file = "LICENSE.MIT"
|
||||
@@ -11,11 +11,11 @@ publish = true
|
||||
|
||||
[dependencies]
|
||||
convert_case = "0.6.0"
|
||||
dagger-core = { path = "../dagger-core", version = "0.2.0" }
|
||||
dagger-core = { path = "../dagger-core", version = "^0.2.1" }
|
||||
|
||||
eyre = "0.6.8"
|
||||
genco = "0.17.3"
|
||||
itertools = "0.10.5"
|
||||
pretty_assertions = "1.3.0"
|
||||
serde = { version = "1.0.152", features = ["derive"] }
|
||||
serde_json = "1.0.91"
|
||||
serde_json = "1.0.93"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
[package]
|
||||
name = "dagger-core"
|
||||
version = "0.2.0"
|
||||
version = "0.2.1"
|
||||
edition = "2021"
|
||||
readme = "README.md"
|
||||
license-file = "LICENSE.MIT"
|
||||
@@ -10,7 +10,7 @@ publish = true
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
clap = "4.1.4"
|
||||
clap = "4.1.6"
|
||||
dirs = "4.0.0"
|
||||
eyre = "0.6.8"
|
||||
flate2 = { version = "1.0.25", features = ["zlib"] }
|
||||
@@ -25,7 +25,7 @@ hex-literal = "0.3.4"
|
||||
platform-info = "1.0.2"
|
||||
reqwest = { version = "0.11.14", features = ["stream", "blocking", "deflate"] }
|
||||
serde = { version = "1.0.152", features = ["derive"] }
|
||||
serde_json = "1.0.91"
|
||||
serde_json = "1.0.93"
|
||||
sha2 = "0.10.6"
|
||||
tar = "0.4.38"
|
||||
tempfile = "3.3.0"
|
||||
|
@@ -12,7 +12,7 @@ publish = true
|
||||
|
||||
[dependencies]
|
||||
base64 = "0.21.0"
|
||||
dagger-core = { path = "../dagger-core", version = "0.2.0" }
|
||||
dagger-core = { path = "../dagger-core", version = "^0.2.1" }
|
||||
eyre = "0.6.8"
|
||||
futures = "0.3.26"
|
||||
|
||||
@@ -20,7 +20,7 @@ genco = "0.17.3"
|
||||
gql_client = "1.0.7"
|
||||
pretty_assertions = "1.3.0"
|
||||
serde = { version = "1.0.152", features = ["derive"] }
|
||||
serde_json = "1.0.92"
|
||||
serde_json = "1.0.93"
|
||||
tokio = { version = "1.25.0", features = ["full"] }
|
||||
|
||||
[dev-dependencies]
|
||||
|
@@ -4,6 +4,8 @@ pub mod cli;
|
||||
mod cli_generate;
|
||||
|
||||
fn main() -> eyre::Result<()> {
|
||||
color_eyre::install().unwrap();
|
||||
|
||||
let args = std::env::args();
|
||||
let args = args.collect::<Vec<String>>();
|
||||
let args = args.iter().map(|s| s.as_str()).collect::<Vec<&str>>();
|
||||
|
Reference in New Issue
Block a user