# i need to preserve --release in args, not to pass cargo make -p release # due to cargo failing to parse "" argument env_scripts = [''' #!@duckscript args = array ${1} ${2} ${3} ${4} ${5} ${6} ${7} set_env PROFILE_OVERRIDE debug for arg in ${args} e = eq ${arg} "--release" if ${e} set_env PROFILE_OVERRIDE release end end profile = get_env PROFILE_OVERRIDE echo PROFILE_OVERRIDE=${profile} '''] [config] default_to_workspace = false [env] TARGET = "x86_64-unknown-linux-musl" CARGO = "cargo" ROOTDIR = "${CARGO_MAKE_WORKING_DIRECTORY}" STATIC_PREFIX = "${ROOTDIR}/static" PQ_LIB_STATIC_X86_64_UNKNOWN_LINUX_MUSL = "true" PG_CONFIG_X86_64_UNKNOWN_LINUX_GNU = "${STATIC_PREFIX}/bin/pg_config" OPENSSL_STATIC = "true" OPENSSL_DIR = "${STATIC_PREFIX}" [tasks.build_static_libs] script = "./scripts/build_musl_libs.sh" [tasks.build_frontend] script = ''' cd ./bin/u_panel/src/server/fe ng build ''' [tasks.clean] command = "${CARGO}" args = ["clean"] [tasks.cargo_build] dependencies = ["build_static_libs", "build_frontend"] command = "${CARGO}" args = ["build", "--target", "${TARGET}", "${@}"] [tasks.release_tasks] condition = { env = { "PROFILE_OVERRIDE" = "release"} } script = ''' BINS=$(ls ./target/${TARGET}/${PROFILE_OVERRIDE}/u_* -1 | grep -v ".d") echo "Stripping..." strip $BINS echo "Packing..." upx -9 $BINS ''' [tasks.build] dependencies = ["cargo_build", "release_tasks"] clear = true [tasks.run] disabled = true [tasks.unit] command = "${CARGO}" args = ["test", "--target", "${TARGET}", "--lib", "--", "${@}"] [tasks.integration] script = ''' [[ ! -d "./target/${TARGET}/${PROFILE_OVERRIDE}" ]] && echo 'No target folder. Build project first' && exit 1 cd ./integration bash integration_tests.sh ${@} ''' [tasks.gen_schema] script = ''' docker run --rm \ --env-file=$PWD/.env \ --env-file=$PWD/.env.private \ -v $PWD:/unki \ -w /unki \ unki/u_db \ /unki/images/integration-tests/u_db_entrypoint.sh || true ''' [tasks.test] dependencies = ["unit", "integration"] [tasks.deploy] script = './scripts/deploy.sh'