diff --git a/Cargo.toml b/Cargo.toml index f940472e..e40f0278 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-make" -version = "0.3.34" +version = "0.3.35" authors = ["Sagie Gur-Ari "] description = "Rust task runner and build tool." license = "Apache-2.0" diff --git a/README.md b/README.md index 30791bc4..be199ed7 100644 --- a/README.md +++ b/README.md @@ -834,6 +834,7 @@ See [contributing guide](.github/CONTRIBUTING.md) | Date | Version | Description | | ----------- | ------- | ----------- | +| 2017-07-21 | v0.3.35 | Maintenance | | 2017-07-21 | v0.3.34 | Added coverage-tarpaulin task | | 2017-07-21 | v0.3.33 | Added more environment variables for workspace support | | 2017-07-20 | v0.3.32 | Added --list-all-steps cli option | diff --git a/docs/_includes/content.md b/docs/_includes/content.md index 23102e18..a0989a22 100644 --- a/docs/_includes/content.md +++ b/docs/_includes/content.md @@ -802,6 +802,7 @@ See [contributing guide](https://github.com/sagiegurari/cargo-make/blob/master/. | Date | Version | Description | | ----------- | ------- | ----------- | +| 2017-07-21 | v0.3.35 | Maintenance | | 2017-07-21 | v0.3.34 | Added coverage-tarpaulin task | | 2017-07-21 | v0.3.33 | Added more environment variables for workspace support | | 2017-07-20 | v0.3.32 | Added --list-all-steps cli option | diff --git a/docs/api/main.js b/docs/api/main.js index 38f83687..788cd80b 100644 --- a/docs/api/main.js +++ b/docs/api/main.js @@ -1233,21 +1233,24 @@ onEach(e.getElementsByClassName('associatedconstant'), func); }); - var span = document.createElement('span'); - span.className = 'toggle-label'; - span.style.display = 'none'; - span.innerHTML = ' Expand description'; - - var mainToggle = toggle.cloneNode(true); - mainToggle.appendChild(span); - - var wrapper = document.createElement('div'); - wrapper.className = 'toggle-wrapper'; - wrapper.appendChild(mainToggle); + function createToggle() { + var span = document.createElement('span'); + span.className = 'toggle-label'; + span.style.display = 'none'; + span.innerHTML = ' Expand description'; + + var mainToggle = toggle.cloneNode(true); + mainToggle.appendChild(span); + + var wrapper = document.createElement('div'); + wrapper.className = 'toggle-wrapper'; + wrapper.appendChild(mainToggle); + return wrapper; + } onEach(document.getElementById('main').getElementsByClassName('docblock'), function(e) { if (e.parentNode.id === "main") { - e.parentNode.insertBefore(wrapper, e); + e.parentNode.insertBefore(createToggle(), e); } }); @@ -1273,18 +1276,22 @@ } }) - var span = document.createElement('span'); - span.className = 'toggle-label'; - span.style.display = 'none'; - span.innerHTML = ' Expand attributes'; - toggle.appendChild(span); + function createToggleWrapper() { + var span = document.createElement('span'); + span.className = 'toggle-label'; + span.style.display = 'none'; + span.innerHTML = ' Expand attributes'; + toggle.appendChild(span); + + var wrapper = document.createElement('div'); + wrapper.className = 'toggle-wrapper toggle-attributes'; + wrapper.appendChild(toggle); + return wrapper; + } - var wrapper = document.createElement('div'); - wrapper.className = 'toggle-wrapper toggle-attributes'; - wrapper.appendChild(toggle); onEach(document.getElementById('main').getElementsByTagName('pre'), function(e) { onEach(e.getElementsByClassName('attributes'), function(i_e) { - i_e.parentNode.insertBefore(wrapper, i_e); + i_e.parentNode.insertBefore(createToggleWrapper(), i_e); collapseDocs(i_e.previousSibling.childNodes[0]); }); }); diff --git a/docs/api/rustdoc.css b/docs/api/rustdoc.css index 969cc4ee..567c8fb9 100644 --- a/docs/api/rustdoc.css +++ b/docs/api/rustdoc.css @@ -658,6 +658,11 @@ h3 > .collapse-toggle, h4 > .collapse-toggle { padding-left: 10px; } +.item-spacer { + width: 100%; + height: 12px; +} + span.since { position: initial; font-size: 20px; diff --git a/docs/api/src/cargo_make/command.rs.html b/docs/api/src/cargo_make/command.rs.html index 3656c2de..54d22b11 100644 --- a/docs/api/src/cargo_make/command.rs.html +++ b/docs/api/src/cargo_make/command.rs.html @@ -328,7 +328,7 @@ }; if !cfg!(windows) { - mut_script_lines.insert(insert_index, "set -e".to_string()); + mut_script_lines.insert(insert_index, "set -xe".to_string()); insert_index = insert_index + 1; } mut_script_lines.insert(insert_index, cd_command); diff --git a/src/command.rs b/src/command.rs index 3fb9043b..995fb641 100644 --- a/src/command.rs +++ b/src/command.rs @@ -74,7 +74,7 @@ fn create_script( }; if !cfg!(windows) { - mut_script_lines.insert(insert_index, "set -e".to_string()); + mut_script_lines.insert(insert_index, "set -xe".to_string()); insert_index = insert_index + 1; } mut_script_lines.insert(insert_index, cd_command); diff --git a/src/command_test.rs b/src/command_test.rs index 81e8ee64..e2774a57 100644 --- a/src/command_test.rs +++ b/src/command_test.rs @@ -12,7 +12,7 @@ fn create_script_no_shebang() { let cwd = current_dir().unwrap(); let mut expected_script = "".to_string(); if !cfg!(windows) { - expected_script.push_str("set -e\n"); + expected_script.push_str("set -xe\n"); } expected_script.push_str("cd "); expected_script.push_str(cwd.to_str().unwrap()); @@ -31,7 +31,7 @@ fn create_script_with_shebang() { let cwd = current_dir().unwrap(); let mut expected_script = "#!/bin/bash\n".to_string(); if !cfg!(windows) { - expected_script.push_str("set -e\n"); + expected_script.push_str("set -xe\n"); } expected_script.push_str("cd "); expected_script.push_str(cwd.to_str().unwrap()); diff --git a/src/default.toml b/src/default.toml index 6d1f5aca..90c67544 100644 --- a/src/default.toml +++ b/src/default.toml @@ -282,13 +282,21 @@ args = ["push"] [tasks.workspace-members-ci] script = [ - "export CARGO_MAKE_SKIP_CODECOV=\"true\"", #prevent codecov publish in member builds - "export CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY=\"${CARGO_MAKE_WORKING_DIRECTORY}/target\"", - "export CARGO_MAKE_COVERAGE_REPORT_DIRECTORY=\"${CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY}/coverage\"", #output coverage data goes into workspace level - "cargo make --loglevel=${CARGO_MAKE_LOG_LEVEL} ci-flow", - "unset CARGO_MAKE_COVERAGE_REPORT_DIRECTORY", - "unset CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY", - "unset CARGO_MAKE_SKIP_CODECOV" +''' +#prevent codecov publish in member builds +export CARGO_MAKE_SKIP_CODECOV="true" + +export CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY="${CARGO_MAKE_WORKING_DIRECTORY}/target" + +#output coverage data goes into workspace level +export CARGO_MAKE_COVERAGE_REPORT_DIRECTORY="${CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY}/coverage" + +cargo make --loglevel=${CARGO_MAKE_LOG_LEVEL} ci-flow + +unset CARGO_MAKE_COVERAGE_REPORT_DIRECTORY +unset CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY +unset CARGO_MAKE_SKIP_CODECOV +''' ] [tasks.workspace-members-ci.windows] @@ -308,54 +316,84 @@ alias = "coverage-kcov" description = "Installs (if missing) and runs coverage using kcov (not supported on windows)" windows_alias = "empty" install_script = [ - "command -v kcov >/dev/null 2>&1 || {", - "if [ -n \"$KCOV_VERSION\" ]; then", - "if [ \"$(grep -Ei 'debian|buntu|mint' /etc/*release)\" ]; then", - "sudo apt-get update || true", - "sudo apt-get install -y libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev", - "wget https://github.com/SimonKagstrom/kcov/archive/v$KCOV_VERSION.zip", - "unzip v$KCOV_VERSION.zip", - "cd kcov-$KCOV_VERSION", - "mkdir build", - "cd ./build", - "cmake ..", - "make", - "sudo make install", - "cd ../..", - "rm -rf kcov-$KCOV_VERSION", - "fi", - "fi", - "}" +''' +command -v kcov >/dev/null 2>&1 || { + if [ -n "$KCOV_VERSION" ]; then + if [ "$(grep -Ei 'debian|buntu|mint' /etc/*release)" ]; then + sudo apt-get update || true + sudo apt-get install -y libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc binutils-dev + + wget https://github.com/SimonKagstrom/kcov/archive/v$KCOV_VERSION.zip + unzip v$KCOV_VERSION.zip + cd kcov-$KCOV_VERSION + mkdir build + cd ./build + cmake .. + make + sudo make install + cd ../.. + rm -rf kcov-$KCOV_VERSION + fi + fi +} +''' ] script = [ - "echo \"Working Directory: ${CARGO_MAKE_WORKING_DIRECTORY}\"", - "TARGET_DIRECTORY=\"target/coverage\"", - "if [ -n \"$CARGO_MAKE_COVERAGE_REPORT_DIRECTORY\" ]; then", - "TARGET_DIRECTORY=\"$CARGO_MAKE_COVERAGE_REPORT_DIRECTORY\"", - "mkdir -p ${TARGET_DIRECTORY}", - "else", - "mkdir -p ./target/coverage", - "fi", - "BINARY_DIRECTORY=target/debug/deps", - "if [ -n \"$CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY\" ]; then", - "BINARY_DIRECTORY=\"${CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY}/debug/deps\"", - "fi", - "echo \"Running unit tests from directory: ${BINARY_DIRECTORY}\"", - "for file in ${BINARY_DIRECTORY}/${CARGO_MAKE_CRATE_FS_NAME}*", - "do", - "if \"$file\" ; then", - "echo \"Running file: $file\"", - "kcov --include-pattern=${CARGO_MAKE_WORKING_DIRECTORY}/src/ \"$TARGET_DIRECTORY\" \"$file\" || true", - "fi", - "done", - "echo \"Running integration tests from directory: ${BINARY_DIRECTORY}\"", - "for file in ${BINARY_DIRECTORY}/test_*", - "do", - "if \"$file\" ; then", - "echo \"Running file: $file\"", - "kcov --include-pattern=${CARGO_MAKE_WORKING_DIRECTORY}/src/ \"$TARGET_DIRECTORY\" \"$file\" || true", - "fi", - "done" +''' +echo "Working Directory: ${CARGO_MAKE_WORKING_DIRECTORY}" + +TARGET_DIRECTORY="target/coverage" +if [ -n "$CARGO_MAKE_COVERAGE_REPORT_DIRECTORY" ]; then + TARGET_DIRECTORY="$CARGO_MAKE_COVERAGE_REPORT_DIRECTORY" + mkdir -p ${TARGET_DIRECTORY} +else + mkdir -p ./target/coverage +fi + +BINARY_DIRECTORY=target/debug/deps +if [ -n "$CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY" ]; then + BINARY_DIRECTORY="${CARGO_MAKE_WORKSPACE_TARGET_DIRECTORY}/debug/deps" +fi + +echo "Running unit tests from directory: ${BINARY_DIRECTORY}" +for file in ${BINARY_DIRECTORY}/${CARGO_MAKE_CRATE_FS_NAME}* +do + if "$file" ; then + echo "Running file: $file" + kcov --include-pattern=${CARGO_MAKE_WORKING_DIRECTORY}/src/ "$TARGET_DIRECTORY" "$file" || true + fi +done + +echo "Running integration tests from directory: ${BINARY_DIRECTORY}" +for file in ${BINARY_DIRECTORY}/test_* +do + if "$file" ; then + echo "Running file: $file" + kcov --include-pattern=${CARGO_MAKE_WORKING_DIRECTORY}/src/ "$TARGET_DIRECTORY" "$file" || true + fi +done +''' +] + +[tasks.coverage-lcov] +description = "WARNING, ONLY INSTALLS LCOV. ACTUAL COVERAGE IS CURRENTLY NOT IMPLEMENTED!!!" +windows_alias = "empty" +install_script = [ +''' +command -v lcov >/dev/null 2>&1 || { + git clone https://github.com/linux-test-project/lcov.git + cd lcov + sudo make install + cd .. + rm -Rf ./lcov +} +''' +] +script = [ +''' +echo "Not Implemented." +exit 1 +''' ] [tasks.coverage-tarpaulin] @@ -397,9 +435,11 @@ dependencies = [ [tasks.ci-coverage-flow] windows_alias = "empty" script = [ - "if [ \"$TRAVIS\" = \"true\" ]; then", - "if [ \"$CARGO_MAKE_RUN_CODECOV\" = \"true\" ]; then", - "cargo make --loglevel=${CARGO_MAKE_LOG_LEVEL} codecov-flow", - "fi", - "fi" +''' +if [ "$TRAVIS" = "true" ]; then + if [ "$CARGO_MAKE_RUN_CODECOV" = "true" ]; then + cargo make --loglevel=${CARGO_MAKE_LOG_LEVEL} codecov-flow + fi +fi +''' ]