From 2502c1b6daa85181bd04dabcb36eb6c9d1f37f8b Mon Sep 17 00:00:00 2001 From: Christian Legnitto Date: Mon, 17 Dec 2018 13:40:11 -0800 Subject: [PATCH] Set up some release automation. Partially fixes https://github.com/graphql-rust/juniper/issues/248. * Install `cargo-release`. (currently need a patched one with https://github.com/sunng87/cargo-release/pull/74) * Run `cargo make release-dry-run` to do a dry run of a release * Run `cargo make release` to do a minor versioned release of every crate * Run `cargo make release-patch` to do a patch release of every crate To only release one crate: * Change directories into the desired crate * Point `cargo-make` to the workspace-level Makefile when running a command. For example, `cargo make --makefile ../Makefile.toml release-dry-run`. From the workspace root, run `cargo --- Makefile.toml | 17 +++++++++++++++++ _build/release.toml | 5 +++++ juniper/Makefile.toml | 8 ++++++++ juniper/release.toml | 13 +++++++++++++ juniper_codegen/Makefile.toml | 8 ++++++++ juniper_codegen/release.toml | 9 +++++++++ juniper_hyper/release.toml | 5 +++++ juniper_tests/Makefile.toml | 9 +++++++++ 8 files changed, 74 insertions(+) create mode 100644 Makefile.toml create mode 100644 _build/release.toml create mode 100644 juniper/Makefile.toml create mode 100644 juniper/release.toml create mode 100644 juniper_codegen/Makefile.toml create mode 100644 juniper_codegen/release.toml create mode 100644 juniper_hyper/release.toml diff --git a/Makefile.toml b/Makefile.toml new file mode 100644 index 00000000..bfcca9a4 --- /dev/null +++ b/Makefile.toml @@ -0,0 +1,17 @@ +# https://github.com/sagiegurari/cargo-make#automatically-extend-workspace-makefile +[env] +CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = "true" + +# Run `cargo make release` to push a new minor release of every crate. +[tasks.release] +args = ["release", "--config", "../_build/release.toml"] + +# Run `cargo make release-patch` to push a new patch release of every crate. +[tasks.release-patch] +args = ["release", "--config", "../_build/release.toml", "patch"] + +# Run `cargo make release-dry-run` to do a dry run. +[tasks.release-dry-run] +description = "Run `cargo-release --dry-run` for every crate" +command = "${HOME}/src/cargo-release/target/debug/cargo-release" +args = ["release", "--config", "../_build/release.toml", "--dry-run"] diff --git a/_build/release.toml b/_build/release.toml new file mode 100644 index 00000000..aa3ce555 --- /dev/null +++ b/_build/release.toml @@ -0,0 +1,5 @@ +dev-version-ext = "pre" +pre-release-commit-message = "Release {{crate_name}} {{version}}" +pro-release-commit-message = "Bump {{crate_name}} version to {{next_version}}" +tag-message = "Release {{crate_name}} {{version}}" +upload-doc = false diff --git a/juniper/Makefile.toml b/juniper/Makefile.toml new file mode 100644 index 00000000..07a88af4 --- /dev/null +++ b/juniper/Makefile.toml @@ -0,0 +1,8 @@ +[tasks.release] +args = ["release"] + +[tasks.release-patch] +args = ["release", "patch"] + +[tasks.release-dry-run] +args = ["release", "--dry-run"] diff --git a/juniper/release.toml b/juniper/release.toml new file mode 100644 index 00000000..5fea839a --- /dev/null +++ b/juniper/release.toml @@ -0,0 +1,13 @@ +dev-version-ext = "pre" +pre-release-commit-message = "Release {{crate_name}} {{version}}" +pro-release-commit-message = "Bump {{crate_name}} version to {{next_version}}" +tag-message = "Release {{crate_name}} {{version}}" +upload-doc = false +pre-release-replacements = [ + {file="../juniper_hyper/Cargo.toml", search="juniper = { version = \"0.11.0\"", replace="juniper = { version = \"{{version}}\""}, + {file="../juniper_iron/Cargo.toml", search="juniper = { version = \"0.11.0\"", replace="juniper = { version = \"{{version}}\""}, + {file="../juniper_rocket/Cargo.toml", search="juniper = { version = \"0.11.0\"", replace="juniper = { version = \"{{version}}\""}, + {file="../juniper_tests/Cargo.toml", search="juniper = { version = \"0.11.0\"", replace="juniper = { version = \"{{version}}\""}, + {file="../juniper_warp/Cargo.toml", search="juniper = { version = \"0.11.0\"", replace="juniper = { version = \"{{version}}\""}, + {file="release.toml", search="0.11.0", replace="{{version}}"}, +] diff --git a/juniper_codegen/Makefile.toml b/juniper_codegen/Makefile.toml new file mode 100644 index 00000000..07a88af4 --- /dev/null +++ b/juniper_codegen/Makefile.toml @@ -0,0 +1,8 @@ +[tasks.release] +args = ["release"] + +[tasks.release-patch] +args = ["release", "patch"] + +[tasks.release-dry-run] +args = ["release", "--dry-run"] diff --git a/juniper_codegen/release.toml b/juniper_codegen/release.toml new file mode 100644 index 00000000..55ae7771 --- /dev/null +++ b/juniper_codegen/release.toml @@ -0,0 +1,9 @@ +dev-version-ext = "pre" +pre-release-commit-message = "Release {{crate_name}} {{version}}" +pro-release-commit-message = "Bump {{crate_name}} version to {{next_version}}" +tag-message = "Release {{crate_name}} {{version}}" +upload-doc = false +pre-release-replacements = [ + {file="../juniper/Cargo.toml", search="juniper_codegen = { version = \"0.11.0\"", replace="juniper_codegen = { version = \"{{version}}\""}, + {file="release.toml", search="0.11.0", replace="{{version}}"}, +] diff --git a/juniper_hyper/release.toml b/juniper_hyper/release.toml new file mode 100644 index 00000000..aa3ce555 --- /dev/null +++ b/juniper_hyper/release.toml @@ -0,0 +1,5 @@ +dev-version-ext = "pre" +pre-release-commit-message = "Release {{crate_name}} {{version}}" +pro-release-commit-message = "Bump {{crate_name}} version to {{next_version}}" +tag-message = "Release {{crate_name}} {{version}}" +upload-doc = false diff --git a/juniper_tests/Makefile.toml b/juniper_tests/Makefile.toml index 5283d340..8c64aa89 100644 --- a/juniper_tests/Makefile.toml +++ b/juniper_tests/Makefile.toml @@ -4,3 +4,12 @@ args = ["build", "--verbose"] [tasks.test-verbose] args = ["test", "--verbose"] + +[tasks.release] +disabled = true + +[tasks.release-patch] +disabled = true + +[tasks.release-dry-run] +disabled = true