[env]
RUST_TEST_THREADS = "1"
CARGO_MAKE_TEST_COVERAGE_BINARY_FILTER = "cli-[a-z0-9]*$\\|makers-[a-z0-9]*$\\|${CARGO_MAKE_TEST_COVERAGE_DEFAULT_BINARY_FILTER}"
TARGET_AUTO = { source = "${CARGO_MAKE_RUST_TARGET_ARCH}-${CARGO_MAKE_RUST_TARGET_VENDOR}-${CARGO_MAKE_RUST_TARGET_OS}-${CARGO_MAKE_RUST_TARGET_ENV}", mapping = { x86_64-apple-macos- = "x86_64-apple-darwin" } }
TARGET = { condition = { env_not_set = ["TARGET"] }, value = "${TARGET_AUTO}" }
LIBZ_SYS_STATIC = "1"
PKG_CONFIG_ALLOW_CROSS = "1"
OPENSSL_STATIC = "1"
CARGO_BUILD_CMD = { source = "${CROSS}", default_value = "cargo", mapping = { true = "cross" } }
[tasks.init.mac.env]
CFLAGS = "-fno-stack-check"
MACOSX_DEPLOYMENT_TARGET = "10.9"
[tasks.dist_env.env]
DIST_VERSION = "${CARGO_MAKE_CRATE_VERSION}"
DIST_NAME = "${CARGO_MAKE_CRATE_NAME}_${DIST_VERSION}-${TARGET}"
DIST_EXT = { source = "${CARGO_MAKE_RUST_TARGET_OS}", default_value = "tar.gz", mapping = { windows = "zip" } }
DIST_PATH = "target/dist/${DIST_NAME}"
[tasks.debug]
dependencies = ["dist_env"]
script_runner = "@duckscript"
script = ['''
echo "PROFILE=${PROFILE}"
echo "MACOSX_DEPLOYMENT_TARGET=${MACOSX_DEPLOYMENT_TARGET}"
echo "FILE=${DIST_PATH}.${DIST_EXT}"
echo "TARGET=${TARGET}"
echo "DIST_VERSION=${DIST_VERSION}"
echo "TAG=${TAG}"
echo "GITHUB_REF=${GITHUB_REF}"
echo "CARGO_BUILD_CMD=${CARGO_BUILD_CMD}"
echo ${CARGO_MAKE_PROFILE} : ${DIST_PATH} : ${platform}
''']
[tasks.zip-release-ci-flow]
description = "Compiles the binary in release mode and zips it up"
windows_alias = "zip-release-ci-flow_windows"
category = "CI"
condition = { env_set = ["TARGET"] }
dependencies = [
"dist_env",
"build-release-for-target",
"zip-release-binary-for-target",
]
script_runner = "@shell"
script = ['''
echo "dist_file_path=${DIST_PATH}.${DIST_EXT}" >> $GITHUB_OUTPUT
echo "dist_file_name=${DIST_NAME}.${DIST_EXT}" >> $GITHUB_OUTPUT
echo "dist_version=${DIST_VERSION}" >> $GITHUB_OUTPUT
''']
[tasks.zip-release-ci-flow_windows]
description = "Compiles the binary in release mode and zips it up"
category = "CI"
condition = { env_set = ["TARGET"] }
dependencies = [
"dist_env",
"build-release-for-target",
"zip-release-binary-for-target",
]
script_runner = "powershell"
script_extension = "ps1"
script = ['''
echo "dist_file_path=${env:DIST_PATH}.${env:DIST_EXT}" >> $env:GITHUB_OUTPUT
echo "dist_file_name=${env:DIST_NAME}.${env:DIST_EXT}" >> $env:GITHUB_OUTPUT
echo "dist_version=${env:DIST_VERSION}" >> $env:GITHUB_OUTPUT
''']
[tasks.setup-cross]
description = "Install cross from https://github.com/cross-rs/cross"
condition = { env_set = ["TARGET", "CROSS"] }
install_crate = { crate_name = "cross", binary = "cross", test_arg = "--help" }
[tasks.build-release-for-target]
description = "Makes a release build for a given target"
condition = { env_set = ["TARGET"] }
dependencies = ["setup-cross"]
command = "${CARGO_BUILD_CMD}"
args = ["build", "--release", "--all-features", "--target", "${TARGET}"]
[tasks.zip-release-binary-for-target]
windows_alias = "zip-release-binary-for-target_windows"
description = "Zips up the release binary, README, and license(s)"
category = "Publish"
condition = { env_set = ["TARGET"] }
script_runner = "@shell"
script = [
'''
rm -Rf ${DIST_PATH}*
mkdir -p ${DIST_PATH}
cp target/${TARGET}/release/${CARGO_MAKE_CRATE_NAME} ${DIST_PATH}/
cp LICENSE* ${DIST_PATH}/ || echo "ignore if no LICENSE"
# "cp README* ${DIST_PATH}/
tar -czvf "${DIST_PATH}.${DIST_EXT}" -C "${DIST_PATH}" "${CARGO_MAKE_CRATE_NAME}" "LICENSE.txt"
''',
]
[tasks.zip-release-binary-for-target_windows]
script_runner = "powershell"
script_extension = "ps1"
script = [
'''
Set-PSDebug -Strict # -Trace 1
$ErrorActionPreference = "Stop"
Remove-Item -Recurse -Force "${env:DIST_PATH}" -ErrorAction SilentlyContinue
New-Item -ItemType directory -Path "${env:DIST_PATH}"
Copy-Item -Path "target\\${env:TARGET}\\release\\${env:CARGO_MAKE_CRATE_NAME}.exe" -Destination "${env:DIST_PATH}"
Copy-Item -Path "LICENSE*" -Destination "${env:DIST_PATH}"
# Copy-Item -Path "README*" -Destination "${env:DIST_PATH}"
Compress-Archive -Path "${env:DIST_PATH}\\*" -DestinationPath "${env:DIST_PATH}.${env:DIST_EXT}" -CompressionLevel Optimal -Force
''',
]
[tasks.update-changelog]
category = "Publish"
install_crate = { crate_name = "gitmoji-changelog", binary = "gitmoji-changelog", test_arg = "--help" }
script = ['''
rm -Rf CHANGELOG.md
gitmoji-changelog -r x.y.z-dev -o CHANGELOG.md .
''']
[tasks.update-book]
category = "Publish"
install_crate = { crate_name = "mdbook", binary = "mdbook", test_arg = "--help" }
script = ['''
cd docs
mdbook clean
mdbook build
''']
[tasks.update-bom]
category = "Publish"
install_crate = { crate_name = "cargo-bom", binary = "cargo", test_arg = "bom" }
script = ["cargo bom > BOM.txt"]
[tasks.pre-publish]
dependencies = ["update-docs"]
[tasks.update-docs]
env = { COMMIT_MSG = ":pencil: pre-publish update book, changelog" }
run_task = "_update-docs-do"
[tasks._update-docs-do]
dependencies = [
"update-changelog",
"update-bom",
"git-add",
"git-commit-message",
]
[tasks.publish]
command = "cargo"
args = ["release", "${@}"]