Adding rust

This commit is contained in:
Kasper Juul Hermansen 2022-04-20 16:23:28 +02:00
parent f496357522
commit 412574659d
18 changed files with 64 additions and 54 deletions

View File

@ -19,8 +19,7 @@ import (
docker.#Run & {
input: *_image.output | docker.#Image
workdir: "/src"
command: name: "rust"
workdir: _sourcePath
mounts: "source": {
dest: _sourcePath
contents: source

View File

@ -9,26 +9,25 @@ import (
// Source code
source: dagger.#FS
// Target package to publish
package: *"." | string
env: [string]: string
container: #Container & {
"source": source
"env": {
env
CARGO_TARGET_DIR: "/output/"
}
command: {
args: [package]
name: "cargo"
flags: {
publish: true
"-o": "/output/"
"build": true
"--release": true
"--manifest-path": "/src/Cargo.toml"
}
}
export: directories: "/output": _
}
// Directory containing the output of the publish
output: container.export.directories."/output"
output: container.export.directories."/output/target/release"
}

View File

@ -3,12 +3,8 @@ package rust
// Test a rust package
#Test: {
// Package to test
package: *"." | string
#Container & {
command: {
args: [package]
flags: test: true
}
}

View File

@ -0,0 +1,5 @@
FROM rust:1.60-alpine
ENV CARGO_TARGET_DIR "/output/"
CMD cargo build --manifest-path "/src/Cargo.toml" --release

View File

@ -0,0 +1,7 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
version = 3
[[package]]
name = "hello_world"
version = "0.1.0"

View File

@ -0,0 +1 @@
{"rustc_fingerprint":6791022512809778958,"outputs":{"931469667778813386":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.a\nlib___.so\n/usr/local/rustup/toolchains/1.60.0-aarch64-unknown-linux-musl\ndebug_assertions\npanic=\"unwind\"\nproc_macro\ntarget_arch=\"aarch64\"\ntarget_endian=\"little\"\ntarget_env=\"musl\"\ntarget_family=\"unix\"\ntarget_has_atomic=\"128\"\ntarget_has_atomic=\"16\"\ntarget_has_atomic=\"32\"\ntarget_has_atomic=\"64\"\ntarget_has_atomic=\"8\"\ntarget_has_atomic=\"ptr\"\ntarget_os=\"linux\"\ntarget_pointer_width=\"64\"\ntarget_vendor=\"unknown\"\nunix\n","stderr":"warning: dropping unsupported crate type `dylib` for target `aarch64-unknown-linux-musl`\n\nwarning: dropping unsupported crate type `cdylib` for target `aarch64-unknown-linux-musl`\n\nwarning: 2 warnings emitted\n\n"},"5309432699494263626":{"success":true,"status":"","code":0,"stdout":"___\nlib___.rlib\nlib___.a\nlib___.so\n","stderr":"{\"message\":\"dropping unsupported crate type `dylib` for target `aarch64-unknown-linux-musl`\",\"code\":null,\"level\":\"warning\",\"spans\":[],\"children\":[],\"rendered\":\"warning: dropping unsupported crate type `dylib` for target `aarch64-unknown-linux-musl`\\n\\n\"}\n{\"message\":\"dropping unsupported crate type `cdylib` for target `aarch64-unknown-linux-musl`\",\"code\":null,\"level\":\"warning\",\"spans\":[],\"children\":[],\"rendered\":\"warning: dropping unsupported crate type `cdylib` for target `aarch64-unknown-linux-musl`\\n\\n\"}\n{\"message\":\"2 warnings emitted\",\"code\":null,\"level\":\"warning\",\"spans\":[],\"children\":[],\"rendered\":\"warning: 2 warnings emitted\\n\\n\"}\n"},"2797684049618456168":{"success":false,"status":"exit status: 1","code":1,"stdout":"","stderr":"error: `-Csplit-debuginfo` is unstable on this platform\n\n"},"17598535894874457435":{"success":true,"status":"","code":0,"stdout":"rustc 1.60.0 (7737e0b5c 2022-04-04)\nbinary: rustc\ncommit-hash: 7737e0b5c4103216d6fd8cf941b7ab9bdbaace7c\ncommit-date: 2022-04-04\nhost: aarch64-unknown-linux-musl\nrelease: 1.60.0\nLLVM version: 14.0.0\n","stderr":""}},"successes":{}}

View File

@ -0,0 +1 @@
{"rustc":9685964557043657374,"features":"[]","target":6051735750501971553,"profile":6269190295429226618,"path":1684066648322511884,"deps":[],"local":[{"CheckDepInfo":{"dep_info":"release/.fingerprint/hello_world-12d244dedbde71e2/dep-bin-hello_world"}}],"rustflags":[],"metadata":7797948686568424061,"config":2202906307356721367,"compile_kind":0}

View File

@ -0,0 +1 @@
This file has an mtime of when this was started.

View File

@ -0,0 +1,5 @@
/output/release/deps/hello_world-12d244dedbde71e2: src/main.rs
/output/release/deps/hello_world-12d244dedbde71e2.d: src/main.rs
src/main.rs:

View File

@ -0,0 +1 @@
/output/release/hello_world: /src/src/main.rs

View File

@ -2,57 +2,51 @@ package rust
import (
"dagger.io/dagger"
"dagger.io/dagger/core"
// "dagger.io/dagger/core"
"universe.dagger.io/x/contact@kjuulh.io/rust"
"universe.dagger.io/docker"
// "universe.dagger.io/docker"
"universe.dagger.io/alpine"
)
dagger.#Plan & {
client: filesystem: "./data/hello_world": read: contents: dagger.#FS
actions: test: {
_baseImage: {
build: alpine.#Build & {
packages: {
"ca-certificates": {}
"krb5-libs": {}
libgcc: {}
libintl: {}
"libssl1.1": {}
"libstdc++": {}
zlib: {}
client: {
filesystem: {
".": {
read: {
contents: dagger.#FS
}
}
}
output: build.output
}
simple: {
actions: {
test: {
_baseImage: alpine.#Build
publish: rust.#Publish & {
source: client.filesystem."./data".read.contents
package: "hello"
source: client.filesystem.".".read.contents
}
exec: docker.#Run & {
input: _baseImage.output
command: {
name: "/bin/sh"
args: ["-c", "/app/hello_world >> /output.txt"]
}
env: NAME: "dagger"
mounts: binary: {
dest: "/app"
contents: publish.output
source: "/"
}
}
// exec: docker.#Run & {
// input: _baseImage.output
// command: {
// name: "/bin/sh"
// args: ["-c", "/app/hello_world >> /output.txt"]
// }
// env: NAME: "dagger"
// mounts: binary: {
// dest: "/app"
// contents: publish.output
// source: "/"
// }
// }
verify: core.#ReadFile & {
input: exec.output.rootfs
path: "/output.txt"
} & {
contents: "Hi dagger!"
}
// verify: core.#ReadFile & {
// input: exec.output.rootfs
// path: "/output.txt"
// } & {
// contents: "Hi dagger!"
// }
}
}
}