Add publish to pipeline.
Update deployment docs. Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
@@ -33,5 +33,6 @@ RUN \
|
||||
--target "${CARGO_TARGET}" \
|
||||
--target-dir "${CARGO_TARGET_DIR}" \
|
||||
--manifest-path Cargo.toml \
|
||||
--color always \
|
||||
${cargo_args}
|
||||
EOF
|
||||
|
||||
@@ -48,11 +48,14 @@ RUN \
|
||||
"-DCMAKE_BUILD_TYPE=${rocksdb_build_type}" \
|
||||
"-DBUILD_SHARED_LIBS=${rocksdb_shared}" \
|
||||
"-DCMAKE_CXX_FLAGS:STRING=${rocksdb_cxx_flags}" \
|
||||
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=-g0 -O${rocksdb_opt_level}" \
|
||||
"-DCMAKE_CXX_FLAGS_RELEASE:STRING=-g0 -O${rocksdb_opt_level} -DNDEBUG" \
|
||||
"-DPORTABLE=${rocksdb_portable}" \
|
||||
"-DFAIL_ON_WARNINGS=0" \
|
||||
"-DUSE_RTTI=1" \
|
||||
"-DUSE_RTTI=0" \
|
||||
"-DWITH_RUNTIME_DEBUG=0" \
|
||||
"-DWITH_JNI=0" \
|
||||
"-DWITH_EXAMPLES=0" \
|
||||
"-DWITH_BENCHMARK=0" \
|
||||
"-DWITH_BENCHMARK_TOOLS=0" \
|
||||
"-DWITH_TRACE_TOOLS=0" \
|
||||
"-DWITH_CORE_TOOLS=0" \
|
||||
|
||||
@@ -194,10 +194,8 @@ group "publish" {
|
||||
target "github" {
|
||||
name = elem("github", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
"ghcr.io/matrix-construct/tuwunel:${cargo_profile}-${feat_set}-${sys_target}",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"ghcr.io/matrix-construct/tuwunel:main": "",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"ghcr.io/matrix-construct/tuwunel:${GITHUB_REF_NAME}-${cargo_profile}-${feat_set}-${sys_target}",
|
||||
(cargo_profile == "release" && feat_set == "all")?
|
||||
"ghcr.io/matrix-construct/tuwunel:${GITHUB_REF_NAME}": "",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"ghcr.io/matrix-construct/tuwunel:latest": "",
|
||||
@@ -205,32 +203,33 @@ target "github" {
|
||||
output = ["type=registry,compression=zstd,mode=min"]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
elem("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
target = "tuwunel"
|
||||
dockerfile-inline =<<EOF
|
||||
FROM input AS tuwunel
|
||||
EXPOSE 8008 8448
|
||||
ENTRYPOINT ["${cargo_install_root}/bin/tuwunel"]
|
||||
EOF
|
||||
}
|
||||
|
||||
target "dockerhub" {
|
||||
name = elem("dockerhub", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
"${repo}:${cargo_profile}-${feat_set}-${sys_target}",
|
||||
"jevolk/tuwunel:${GITHUB_REF_NAME}-${cargo_profile}-${feat_set}-${sys_target}",
|
||||
(cargo_profile == "release" && feat_set == "all")?
|
||||
"jevolk/tuwunel:${GITHUB_REF_NAME}": "",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"${repo}:main": "",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"${repo}:${GITHUB_REF_NAME}": "",
|
||||
(GITHUB_REF_NAME == "main" && cargo_profile == "release" && feat_set == "all")?
|
||||
"${repo}:latest": "",
|
||||
"jevolk/tuwunel:latest": "",
|
||||
]
|
||||
output = ["type=registry,compression=zstd,mode=min"]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
}
|
||||
|
||||
target "tuwunel" {
|
||||
name = elem("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("tuwunel", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
output = ["type=docker,compression=zstd,mode=min"]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
@@ -478,6 +477,28 @@ install_labels = {
|
||||
"org.opencontainers.image.version" = "${package_version}"
|
||||
}
|
||||
|
||||
target "standalone" {
|
||||
name = elem("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
elem_tag("standalone", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target], "latest"),
|
||||
]
|
||||
target = "standalone"
|
||||
labels = install_labels
|
||||
output = ["type=docker,compression=zstd,mode=min"]
|
||||
cache_to = ["type=local,compression=zstd,mode=min"]
|
||||
matrix = cargo_rust_feat_sys
|
||||
inherits = [
|
||||
elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
}
|
||||
dockerfile-inline =<<EOF
|
||||
FROM scratch AS standalone
|
||||
COPY --from=input /usr/bin/tuwunel .
|
||||
EOF
|
||||
}
|
||||
|
||||
target "install" {
|
||||
name = elem("install", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
tags = [
|
||||
@@ -493,7 +514,8 @@ target "install" {
|
||||
]
|
||||
contexts = {
|
||||
input = elem("target:diner", [feat_set, sys_name, sys_version, sys_target])
|
||||
output = elem("target:installer", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target]),
|
||||
output = elem("target:installer", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
docs = elem("target:docs", [cargo_profile, rust_toolchain, rust_target, feat_set, sys_name, sys_version, sys_target])
|
||||
}
|
||||
}
|
||||
|
||||
@@ -794,7 +816,7 @@ target "docs" {
|
||||
}
|
||||
args = {
|
||||
cargo_cmd = "doc"
|
||||
cargo_args = "--no-deps --document-private-items --color always"
|
||||
cargo_args = "--no-deps --document-private-items"
|
||||
RUSTDOCFLAGS = "-D warnings"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,19 +34,31 @@ tester_image="complement-tester--${feat_set}--${sys_name}--${sys_version}--${sys
|
||||
testee_image="complement-testee--${cargo_profile}--${rust_toolchain}--${rust_target}--${feat_set}--${sys_name}--${sys_version}--${sys_target}"
|
||||
name="complement_tester__${cargo_profile}__${rust_toolchain}__${rust_target}__${feat_set}__${sys_name}__${sys_version}__${sys_target}"
|
||||
sock="/var/run/docker.sock"
|
||||
arg="--rm --name $name -v $sock:$sock --network=host $tester_image ${testee_image}"
|
||||
|
||||
trap 'set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' ERR
|
||||
arg="--name $name -v $sock:$sock --network=host $tester_image ${testee_image}"
|
||||
|
||||
if test "$CI_VERBOSE_ENV" = "true"; then
|
||||
date
|
||||
env
|
||||
fi
|
||||
|
||||
if test "$CI" = "true"; then
|
||||
arg="-d $arg"
|
||||
else
|
||||
arg="--rm $arg"
|
||||
fi
|
||||
|
||||
docker rm -f "$name" 2>/dev/null
|
||||
|
||||
trap 'set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' ERR
|
||||
|
||||
set -x -e
|
||||
cid=$(docker run $arg)
|
||||
set +x
|
||||
|
||||
if test "$CI" = "true"; then
|
||||
echo -n "$cid" > "$name"
|
||||
fi
|
||||
|
||||
trap 'docker container stop $cid; set +x; date; echo -e "\033[1;41;37mFAIL\033[0m"' INT
|
||||
|
||||
docker logs -f "$cid"
|
||||
|
||||
Reference in New Issue
Block a user