diff --git a/CHANGELOG.md b/CHANGELOG.md index 58b3a31b4..291edea78 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,12 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## [vNext] +## [7.0.5] / 2023-09-05 +- Fixed filtering environment variables with newlines in Docker target execution +- Fixed logging in Docker target execution +- Fixed update of version summary in `ChangelogTasks` +- Fixed missing `DockerTasks` command + ## [7.0.4] / 2023-08-31 - Fixed check on nullable parameter type - Fixed telemetry check on home repository @@ -1094,397 +1100,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Added CLT tasks for Git - Fixed background color in console output -[vNext]: https://github.com/nuke-build/nuke/compare/7.0.0...HEAD -[7.0.0]: https://github.com/nuke-build/nuke/compare/6.3.0...7.0.0 -[6.3.0]: https://github.com/nuke-build/nuke/compare/6.2.1...6.3.0 -[6.2.1]: https://github.com/nuke-build/nuke/compare/6.2.0...6.2.1 -[6.2.0]: https://github.com/nuke-build/nuke/compare/6.1.2...6.2.0 -[6.1.2]: https://github.com/nuke-build/nuke/compare/6.1.1...6.1.2 -[6.1.1]: https://github.com/nuke-build/nuke/compare/6.1.0...6.1.1 -[6.1.0]: https://github.com/nuke-build/nuke/compare/6.0.3...6.1.0 -[6.0.3]: https://github.com/nuke-build/nuke/compare/6.0.2...6.0.3 -[6.0.2]: https://github.com/nuke-build/nuke/compare/6.0.1...6.0.2 -[6.0.1]: https://github.com/nuke-build/nuke/compare/6.0.0...6.0.1 -[6.0.0]: https://github.com/nuke-build/nuke/compare/5.3.0...6.0.0 -[5.3.0]: https://github.com/nuke-build/nuke/compare/5.2.1...5.3.0 -[5.2.1]: https://github.com/nuke-build/nuke/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/nuke-build/nuke/compare/5.1.4...5.2.0 -[5.1.4]: https://github.com/nuke-build/nuke/compare/5.1.3...5.1.4 -[5.1.3]: https://github.com/nuke-build/nuke/compare/5.1.2...5.1.3 -[5.1.2]: https://github.com/nuke-build/nuke/compare/5.1.1...5.1.2 -[5.1.1]: https://github.com/nuke-build/nuke/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/nuke-build/nuke/compare/5.0.2...5.1.0 -[5.0.2]: https://github.com/nuke-build/nuke/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/nuke-build/nuke/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/nuke-build/nuke/compare/0.25.0...5.0.0 -[0.25.0]: https://github.com/nuke-build/nuke/compare/0.24.11...0.25.0 -[0.24.11]: https://github.com/nuke-build/nuke/compare/0.24.10...0.24.11 -[0.24.10]: https://github.com/nuke-build/nuke/compare/0.24.9...0.24.10 -[0.24.9]: https://github.com/nuke-build/nuke/compare/0.24.8...0.24.9 -[0.24.8]: https://github.com/nuke-build/nuke/compare/0.24.7...0.24.8 -[0.24.7]: https://github.com/nuke-build/nuke/compare/0.24.6...0.24.7 -[0.24.6]: https://github.com/nuke-build/nuke/compare/0.24.5...0.24.6 -[0.24.5]: https://github.com/nuke-build/nuke/compare/0.24.4...0.24.5 -[0.24.4]: https://github.com/nuke-build/nuke/compare/0.24.2...0.24.4 -[0.24.2]: https://github.com/nuke-build/nuke/compare/0.24.1...0.24.2 -[0.24.1]: https://github.com/nuke-build/nuke/compare/0.24.0...0.24.1 -[0.24.0]: https://github.com/nuke-build/nuke/compare/0.23.7...0.24.0 -[0.23.7]: https://github.com/nuke-build/nuke/compare/0.23.6...0.23.7 -[0.23.6]: https://github.com/nuke-build/nuke/compare/0.23.5...0.23.6 -[0.23.5]: https://github.com/nuke-build/nuke/compare/0.23.4...0.23.5 -[0.23.4]: https://github.com/nuke-build/nuke/compare/0.23.3...0.23.4 -[0.23.3]: https://github.com/nuke-build/nuke/compare/0.23.2...0.23.3 -[0.23.2]: https://github.com/nuke-build/nuke/compare/0.23.1...0.23.2 -[0.23.1]: https://github.com/nuke-build/nuke/compare/0.23.0...0.23.1 -[0.23.0]: https://github.com/nuke-build/nuke/compare/0.22.2...0.23.0 -[0.22.2]: https://github.com/nuke-build/nuke/compare/0.22.1...0.22.2 -[0.22.1]: https://github.com/nuke-build/nuke/compare/0.22.0...0.22.1 -[0.22.0]: https://github.com/nuke-build/nuke/compare/0.21.2...0.22.0 -[0.21.2]: https://github.com/nuke-build/nuke/compare/0.21.1...0.21.2 -[0.21.1]: https://github.com/nuke-build/nuke/compare/0.21.0...0.21.1 -[0.21.0]: https://github.com/nuke-build/nuke/compare/0.20.1...0.21.0 -[0.20.1]: https://github.com/nuke-build/nuke/compare/0.20.0...0.20.1 -[0.20.0]: https://github.com/nuke-build/nuke/compare/0.19.2...0.20.0 -[0.19.2]: https://github.com/nuke-build/nuke/compare/0.19.1...0.19.2 -[0.19.1]: https://github.com/nuke-build/nuke/compare/0.19.0...0.19.1 -[0.19.0]: https://github.com/nuke-build/nuke/compare/0.18.0...0.19.0 -[0.18.0]: https://github.com/nuke-build/nuke/compare/0.17.7...0.18.0 -[0.17.7]: https://github.com/nuke-build/nuke/compare/0.17.6...0.17.7 -[0.17.6]: https://github.com/nuke-build/nuke/compare/0.17.5...0.17.6 -[0.17.5]: https://github.com/nuke-build/nuke/compare/0.17.4...0.17.5 -[0.17.4]: https://github.com/nuke-build/nuke/compare/0.17.3...0.17.4 -[0.17.3]: https://github.com/nuke-build/nuke/compare/0.17.2...0.17.3 -[0.17.2]: https://github.com/nuke-build/nuke/compare/0.17.1...0.17.2 -[0.17.1]: https://github.com/nuke-build/nuke/compare/0.17.0...0.17.1 -[0.17.0]: https://github.com/nuke-build/nuke/compare/0.16.0...0.17.0 -[0.16.0]: https://github.com/nuke-build/nuke/compare/0.15.0...0.16.0 -[0.15.0]: https://github.com/nuke-build/nuke/compare/0.14.1...0.15.0 -[0.14.1]: https://github.com/nuke-build/nuke/compare/0.14.0...0.14.1 -[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0 -[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0 -[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4 -[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3 -[0.12.2]: https://github.com/nuke-build/nuke/compare/0.12.1...0.12.2 -[0.12.1]: https://github.com/nuke-build/nuke/compare/0.12.0...0.12.1 -[0.12.0]: https://github.com/nuke-build/nuke/compare/0.11.1...0.12.0 -[0.11.1]: https://github.com/nuke-build/nuke/compare/0.11.0...0.11.1 -[0.11.0]: https://github.com/nuke-build/nuke/compare/0.10.5...0.11.0 -[0.10.5]: https://github.com/nuke-build/nuke/compare/0.10.4...0.10.5 -[0.10.4]: https://github.com/nuke-build/nuke/compare/0.10.3...0.10.4 -[0.10.3]: https://github.com/nuke-build/nuke/compare/0.10.2...0.10.3 -[0.10.2]: https://github.com/nuke-build/nuke/compare/0.10.1...0.10.2 -[0.10.1]: https://github.com/nuke-build/nuke/compare/0.10.0...0.10.1 -[0.10.0]: https://github.com/nuke-build/nuke/compare/0.9.1...0.10.0 -[0.9.1]: https://github.com/nuke-build/nuke/compare/0.9.0...0.9.1 -[0.9.0]: https://github.com/nuke-build/nuke/compare/0.8.0...0.9.0 -[0.8.0]: https://github.com/nuke-build/nuke/compare/0.7.0...0.8.0 -[0.7.0]: https://github.com/nuke-build/nuke/compare/0.6.2...0.7.0 -[0.6.2]: https://github.com/nuke-build/nuke/compare/0.6.1...0.6.2 -[0.6.1]: https://github.com/nuke-build/nuke/compare/0.6.0...0.6.1 -[0.6.0]: https://github.com/nuke-build/nuke/compare/0.5.3...0.6.0 -[0.5.3]: https://github.com/nuke-build/nuke/compare/0.5.2...0.5.3 -[0.5.2]: https://github.com/nuke-build/nuke/compare/0.5.0...0.5.2 -[0.5.0]: https://github.com/nuke-build/nuke/compare/0.4.0...0.5.0 -[0.4.0]: https://github.com/nuke-build/nuke/compare/0.3.1...0.4.0 -[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1 -[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10 -[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0 - -[vNext]: https://github.com/nuke-build/nuke/compare/7.0.1...HEAD -[7.0.1]: https://github.com/nuke-build/nuke/compare/7.0.0...7.0.1 -[7.0.0]: https://github.com/nuke-build/nuke/compare/6.3.0...7.0.0 -[6.3.0]: https://github.com/nuke-build/nuke/compare/6.2.1...6.3.0 -[6.2.1]: https://github.com/nuke-build/nuke/compare/6.2.0...6.2.1 -[6.2.0]: https://github.com/nuke-build/nuke/compare/6.1.2...6.2.0 -[6.1.2]: https://github.com/nuke-build/nuke/compare/6.1.1...6.1.2 -[6.1.1]: https://github.com/nuke-build/nuke/compare/6.1.0...6.1.1 -[6.1.0]: https://github.com/nuke-build/nuke/compare/6.0.3...6.1.0 -[6.0.3]: https://github.com/nuke-build/nuke/compare/6.0.2...6.0.3 -[6.0.2]: https://github.com/nuke-build/nuke/compare/6.0.1...6.0.2 -[6.0.1]: https://github.com/nuke-build/nuke/compare/6.0.0...6.0.1 -[6.0.0]: https://github.com/nuke-build/nuke/compare/5.3.0...6.0.0 -[5.3.0]: https://github.com/nuke-build/nuke/compare/5.2.1...5.3.0 -[5.2.1]: https://github.com/nuke-build/nuke/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/nuke-build/nuke/compare/5.1.4...5.2.0 -[5.1.4]: https://github.com/nuke-build/nuke/compare/5.1.3...5.1.4 -[5.1.3]: https://github.com/nuke-build/nuke/compare/5.1.2...5.1.3 -[5.1.2]: https://github.com/nuke-build/nuke/compare/5.1.1...5.1.2 -[5.1.1]: https://github.com/nuke-build/nuke/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/nuke-build/nuke/compare/5.0.2...5.1.0 -[5.0.2]: https://github.com/nuke-build/nuke/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/nuke-build/nuke/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/nuke-build/nuke/compare/0.25.0...5.0.0 -[0.25.0]: https://github.com/nuke-build/nuke/compare/0.24.11...0.25.0 -[0.24.11]: https://github.com/nuke-build/nuke/compare/0.24.10...0.24.11 -[0.24.10]: https://github.com/nuke-build/nuke/compare/0.24.9...0.24.10 -[0.24.9]: https://github.com/nuke-build/nuke/compare/0.24.8...0.24.9 -[0.24.8]: https://github.com/nuke-build/nuke/compare/0.24.7...0.24.8 -[0.24.7]: https://github.com/nuke-build/nuke/compare/0.24.6...0.24.7 -[0.24.6]: https://github.com/nuke-build/nuke/compare/0.24.5...0.24.6 -[0.24.5]: https://github.com/nuke-build/nuke/compare/0.24.4...0.24.5 -[0.24.4]: https://github.com/nuke-build/nuke/compare/0.24.2...0.24.4 -[0.24.2]: https://github.com/nuke-build/nuke/compare/0.24.1...0.24.2 -[0.24.1]: https://github.com/nuke-build/nuke/compare/0.24.0...0.24.1 -[0.24.0]: https://github.com/nuke-build/nuke/compare/0.23.7...0.24.0 -[0.23.7]: https://github.com/nuke-build/nuke/compare/0.23.6...0.23.7 -[0.23.6]: https://github.com/nuke-build/nuke/compare/0.23.5...0.23.6 -[0.23.5]: https://github.com/nuke-build/nuke/compare/0.23.4...0.23.5 -[0.23.4]: https://github.com/nuke-build/nuke/compare/0.23.3...0.23.4 -[0.23.3]: https://github.com/nuke-build/nuke/compare/0.23.2...0.23.3 -[0.23.2]: https://github.com/nuke-build/nuke/compare/0.23.1...0.23.2 -[0.23.1]: https://github.com/nuke-build/nuke/compare/0.23.0...0.23.1 -[0.23.0]: https://github.com/nuke-build/nuke/compare/0.22.2...0.23.0 -[0.22.2]: https://github.com/nuke-build/nuke/compare/0.22.1...0.22.2 -[0.22.1]: https://github.com/nuke-build/nuke/compare/0.22.0...0.22.1 -[0.22.0]: https://github.com/nuke-build/nuke/compare/0.21.2...0.22.0 -[0.21.2]: https://github.com/nuke-build/nuke/compare/0.21.1...0.21.2 -[0.21.1]: https://github.com/nuke-build/nuke/compare/0.21.0...0.21.1 -[0.21.0]: https://github.com/nuke-build/nuke/compare/0.20.1...0.21.0 -[0.20.1]: https://github.com/nuke-build/nuke/compare/0.20.0...0.20.1 -[0.20.0]: https://github.com/nuke-build/nuke/compare/0.19.2...0.20.0 -[0.19.2]: https://github.com/nuke-build/nuke/compare/0.19.1...0.19.2 -[0.19.1]: https://github.com/nuke-build/nuke/compare/0.19.0...0.19.1 -[0.19.0]: https://github.com/nuke-build/nuke/compare/0.18.0...0.19.0 -[0.18.0]: https://github.com/nuke-build/nuke/compare/0.17.7...0.18.0 -[0.17.7]: https://github.com/nuke-build/nuke/compare/0.17.6...0.17.7 -[0.17.6]: https://github.com/nuke-build/nuke/compare/0.17.5...0.17.6 -[0.17.5]: https://github.com/nuke-build/nuke/compare/0.17.4...0.17.5 -[0.17.4]: https://github.com/nuke-build/nuke/compare/0.17.3...0.17.4 -[0.17.3]: https://github.com/nuke-build/nuke/compare/0.17.2...0.17.3 -[0.17.2]: https://github.com/nuke-build/nuke/compare/0.17.1...0.17.2 -[0.17.1]: https://github.com/nuke-build/nuke/compare/0.17.0...0.17.1 -[0.17.0]: https://github.com/nuke-build/nuke/compare/0.16.0...0.17.0 -[0.16.0]: https://github.com/nuke-build/nuke/compare/0.15.0...0.16.0 -[0.15.0]: https://github.com/nuke-build/nuke/compare/0.14.1...0.15.0 -[0.14.1]: https://github.com/nuke-build/nuke/compare/0.14.0...0.14.1 -[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0 -[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0 -[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4 -[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3 -[0.12.2]: https://github.com/nuke-build/nuke/compare/0.12.1...0.12.2 -[0.12.1]: https://github.com/nuke-build/nuke/compare/0.12.0...0.12.1 -[0.12.0]: https://github.com/nuke-build/nuke/compare/0.11.1...0.12.0 -[0.11.1]: https://github.com/nuke-build/nuke/compare/0.11.0...0.11.1 -[0.11.0]: https://github.com/nuke-build/nuke/compare/0.10.5...0.11.0 -[0.10.5]: https://github.com/nuke-build/nuke/compare/0.10.4...0.10.5 -[0.10.4]: https://github.com/nuke-build/nuke/compare/0.10.3...0.10.4 -[0.10.3]: https://github.com/nuke-build/nuke/compare/0.10.2...0.10.3 -[0.10.2]: https://github.com/nuke-build/nuke/compare/0.10.1...0.10.2 -[0.10.1]: https://github.com/nuke-build/nuke/compare/0.10.0...0.10.1 -[0.10.0]: https://github.com/nuke-build/nuke/compare/0.9.1...0.10.0 -[0.9.1]: https://github.com/nuke-build/nuke/compare/0.9.0...0.9.1 -[0.9.0]: https://github.com/nuke-build/nuke/compare/0.8.0...0.9.0 -[0.8.0]: https://github.com/nuke-build/nuke/compare/0.7.0...0.8.0 -[0.7.0]: https://github.com/nuke-build/nuke/compare/0.6.2...0.7.0 -[0.6.2]: https://github.com/nuke-build/nuke/compare/0.6.1...0.6.2 -[0.6.1]: https://github.com/nuke-build/nuke/compare/0.6.0...0.6.1 -[0.6.0]: https://github.com/nuke-build/nuke/compare/0.5.3...0.6.0 -[0.5.3]: https://github.com/nuke-build/nuke/compare/0.5.2...0.5.3 -[0.5.2]: https://github.com/nuke-build/nuke/compare/0.5.0...0.5.2 -[0.5.0]: https://github.com/nuke-build/nuke/compare/0.4.0...0.5.0 -[0.4.0]: https://github.com/nuke-build/nuke/compare/0.3.1...0.4.0 -[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1 -[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10 -[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0 - -[vNext]: https://github.com/nuke-build/nuke/compare/7.0.2...HEAD -[7.0.2]: https://github.com/nuke-build/nuke/compare/7.0.1...7.0.2 -[7.0.1]: https://github.com/nuke-build/nuke/compare/7.0.0...7.0.1 -[7.0.0]: https://github.com/nuke-build/nuke/compare/6.3.0...7.0.0 -[6.3.0]: https://github.com/nuke-build/nuke/compare/6.2.1...6.3.0 -[6.2.1]: https://github.com/nuke-build/nuke/compare/6.2.0...6.2.1 -[6.2.0]: https://github.com/nuke-build/nuke/compare/6.1.2...6.2.0 -[6.1.2]: https://github.com/nuke-build/nuke/compare/6.1.1...6.1.2 -[6.1.1]: https://github.com/nuke-build/nuke/compare/6.1.0...6.1.1 -[6.1.0]: https://github.com/nuke-build/nuke/compare/6.0.3...6.1.0 -[6.0.3]: https://github.com/nuke-build/nuke/compare/6.0.2...6.0.3 -[6.0.2]: https://github.com/nuke-build/nuke/compare/6.0.1...6.0.2 -[6.0.1]: https://github.com/nuke-build/nuke/compare/6.0.0...6.0.1 -[6.0.0]: https://github.com/nuke-build/nuke/compare/5.3.0...6.0.0 -[5.3.0]: https://github.com/nuke-build/nuke/compare/5.2.1...5.3.0 -[5.2.1]: https://github.com/nuke-build/nuke/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/nuke-build/nuke/compare/5.1.4...5.2.0 -[5.1.4]: https://github.com/nuke-build/nuke/compare/5.1.3...5.1.4 -[5.1.3]: https://github.com/nuke-build/nuke/compare/5.1.2...5.1.3 -[5.1.2]: https://github.com/nuke-build/nuke/compare/5.1.1...5.1.2 -[5.1.1]: https://github.com/nuke-build/nuke/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/nuke-build/nuke/compare/5.0.2...5.1.0 -[5.0.2]: https://github.com/nuke-build/nuke/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/nuke-build/nuke/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/nuke-build/nuke/compare/0.25.0...5.0.0 -[0.25.0]: https://github.com/nuke-build/nuke/compare/0.24.11...0.25.0 -[0.24.11]: https://github.com/nuke-build/nuke/compare/0.24.10...0.24.11 -[0.24.10]: https://github.com/nuke-build/nuke/compare/0.24.9...0.24.10 -[0.24.9]: https://github.com/nuke-build/nuke/compare/0.24.8...0.24.9 -[0.24.8]: https://github.com/nuke-build/nuke/compare/0.24.7...0.24.8 -[0.24.7]: https://github.com/nuke-build/nuke/compare/0.24.6...0.24.7 -[0.24.6]: https://github.com/nuke-build/nuke/compare/0.24.5...0.24.6 -[0.24.5]: https://github.com/nuke-build/nuke/compare/0.24.4...0.24.5 -[0.24.4]: https://github.com/nuke-build/nuke/compare/0.24.2...0.24.4 -[0.24.2]: https://github.com/nuke-build/nuke/compare/0.24.1...0.24.2 -[0.24.1]: https://github.com/nuke-build/nuke/compare/0.24.0...0.24.1 -[0.24.0]: https://github.com/nuke-build/nuke/compare/0.23.7...0.24.0 -[0.23.7]: https://github.com/nuke-build/nuke/compare/0.23.6...0.23.7 -[0.23.6]: https://github.com/nuke-build/nuke/compare/0.23.5...0.23.6 -[0.23.5]: https://github.com/nuke-build/nuke/compare/0.23.4...0.23.5 -[0.23.4]: https://github.com/nuke-build/nuke/compare/0.23.3...0.23.4 -[0.23.3]: https://github.com/nuke-build/nuke/compare/0.23.2...0.23.3 -[0.23.2]: https://github.com/nuke-build/nuke/compare/0.23.1...0.23.2 -[0.23.1]: https://github.com/nuke-build/nuke/compare/0.23.0...0.23.1 -[0.23.0]: https://github.com/nuke-build/nuke/compare/0.22.2...0.23.0 -[0.22.2]: https://github.com/nuke-build/nuke/compare/0.22.1...0.22.2 -[0.22.1]: https://github.com/nuke-build/nuke/compare/0.22.0...0.22.1 -[0.22.0]: https://github.com/nuke-build/nuke/compare/0.21.2...0.22.0 -[0.21.2]: https://github.com/nuke-build/nuke/compare/0.21.1...0.21.2 -[0.21.1]: https://github.com/nuke-build/nuke/compare/0.21.0...0.21.1 -[0.21.0]: https://github.com/nuke-build/nuke/compare/0.20.1...0.21.0 -[0.20.1]: https://github.com/nuke-build/nuke/compare/0.20.0...0.20.1 -[0.20.0]: https://github.com/nuke-build/nuke/compare/0.19.2...0.20.0 -[0.19.2]: https://github.com/nuke-build/nuke/compare/0.19.1...0.19.2 -[0.19.1]: https://github.com/nuke-build/nuke/compare/0.19.0...0.19.1 -[0.19.0]: https://github.com/nuke-build/nuke/compare/0.18.0...0.19.0 -[0.18.0]: https://github.com/nuke-build/nuke/compare/0.17.7...0.18.0 -[0.17.7]: https://github.com/nuke-build/nuke/compare/0.17.6...0.17.7 -[0.17.6]: https://github.com/nuke-build/nuke/compare/0.17.5...0.17.6 -[0.17.5]: https://github.com/nuke-build/nuke/compare/0.17.4...0.17.5 -[0.17.4]: https://github.com/nuke-build/nuke/compare/0.17.3...0.17.4 -[0.17.3]: https://github.com/nuke-build/nuke/compare/0.17.2...0.17.3 -[0.17.2]: https://github.com/nuke-build/nuke/compare/0.17.1...0.17.2 -[0.17.1]: https://github.com/nuke-build/nuke/compare/0.17.0...0.17.1 -[0.17.0]: https://github.com/nuke-build/nuke/compare/0.16.0...0.17.0 -[0.16.0]: https://github.com/nuke-build/nuke/compare/0.15.0...0.16.0 -[0.15.0]: https://github.com/nuke-build/nuke/compare/0.14.1...0.15.0 -[0.14.1]: https://github.com/nuke-build/nuke/compare/0.14.0...0.14.1 -[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0 -[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0 -[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4 -[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3 -[0.12.2]: https://github.com/nuke-build/nuke/compare/0.12.1...0.12.2 -[0.12.1]: https://github.com/nuke-build/nuke/compare/0.12.0...0.12.1 -[0.12.0]: https://github.com/nuke-build/nuke/compare/0.11.1...0.12.0 -[0.11.1]: https://github.com/nuke-build/nuke/compare/0.11.0...0.11.1 -[0.11.0]: https://github.com/nuke-build/nuke/compare/0.10.5...0.11.0 -[0.10.5]: https://github.com/nuke-build/nuke/compare/0.10.4...0.10.5 -[0.10.4]: https://github.com/nuke-build/nuke/compare/0.10.3...0.10.4 -[0.10.3]: https://github.com/nuke-build/nuke/compare/0.10.2...0.10.3 -[0.10.2]: https://github.com/nuke-build/nuke/compare/0.10.1...0.10.2 -[0.10.1]: https://github.com/nuke-build/nuke/compare/0.10.0...0.10.1 -[0.10.0]: https://github.com/nuke-build/nuke/compare/0.9.1...0.10.0 -[0.9.1]: https://github.com/nuke-build/nuke/compare/0.9.0...0.9.1 -[0.9.0]: https://github.com/nuke-build/nuke/compare/0.8.0...0.9.0 -[0.8.0]: https://github.com/nuke-build/nuke/compare/0.7.0...0.8.0 -[0.7.0]: https://github.com/nuke-build/nuke/compare/0.6.2...0.7.0 -[0.6.2]: https://github.com/nuke-build/nuke/compare/0.6.1...0.6.2 -[0.6.1]: https://github.com/nuke-build/nuke/compare/0.6.0...0.6.1 -[0.6.0]: https://github.com/nuke-build/nuke/compare/0.5.3...0.6.0 -[0.5.3]: https://github.com/nuke-build/nuke/compare/0.5.2...0.5.3 -[0.5.2]: https://github.com/nuke-build/nuke/compare/0.5.0...0.5.2 -[0.5.0]: https://github.com/nuke-build/nuke/compare/0.4.0...0.5.0 -[0.4.0]: https://github.com/nuke-build/nuke/compare/0.3.1...0.4.0 -[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1 -[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10 -[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0 - -[vNext]: https://github.com/nuke-build/nuke/compare/7.0.3...HEAD -[7.0.3]: https://github.com/nuke-build/nuke/compare/7.0.2...7.0.3 -[7.0.2]: https://github.com/nuke-build/nuke/compare/7.0.1...7.0.2 -[7.0.1]: https://github.com/nuke-build/nuke/compare/7.0.0...7.0.1 -[7.0.0]: https://github.com/nuke-build/nuke/compare/6.3.0...7.0.0 -[6.3.0]: https://github.com/nuke-build/nuke/compare/6.2.1...6.3.0 -[6.2.1]: https://github.com/nuke-build/nuke/compare/6.2.0...6.2.1 -[6.2.0]: https://github.com/nuke-build/nuke/compare/6.1.2...6.2.0 -[6.1.2]: https://github.com/nuke-build/nuke/compare/6.1.1...6.1.2 -[6.1.1]: https://github.com/nuke-build/nuke/compare/6.1.0...6.1.1 -[6.1.0]: https://github.com/nuke-build/nuke/compare/6.0.3...6.1.0 -[6.0.3]: https://github.com/nuke-build/nuke/compare/6.0.2...6.0.3 -[6.0.2]: https://github.com/nuke-build/nuke/compare/6.0.1...6.0.2 -[6.0.1]: https://github.com/nuke-build/nuke/compare/6.0.0...6.0.1 -[6.0.0]: https://github.com/nuke-build/nuke/compare/5.3.0...6.0.0 -[5.3.0]: https://github.com/nuke-build/nuke/compare/5.2.1...5.3.0 -[5.2.1]: https://github.com/nuke-build/nuke/compare/5.2.0...5.2.1 -[5.2.0]: https://github.com/nuke-build/nuke/compare/5.1.4...5.2.0 -[5.1.4]: https://github.com/nuke-build/nuke/compare/5.1.3...5.1.4 -[5.1.3]: https://github.com/nuke-build/nuke/compare/5.1.2...5.1.3 -[5.1.2]: https://github.com/nuke-build/nuke/compare/5.1.1...5.1.2 -[5.1.1]: https://github.com/nuke-build/nuke/compare/5.1.0...5.1.1 -[5.1.0]: https://github.com/nuke-build/nuke/compare/5.0.2...5.1.0 -[5.0.2]: https://github.com/nuke-build/nuke/compare/5.0.1...5.0.2 -[5.0.1]: https://github.com/nuke-build/nuke/compare/5.0.0...5.0.1 -[5.0.0]: https://github.com/nuke-build/nuke/compare/0.25.0...5.0.0 -[0.25.0]: https://github.com/nuke-build/nuke/compare/0.24.11...0.25.0 -[0.24.11]: https://github.com/nuke-build/nuke/compare/0.24.10...0.24.11 -[0.24.10]: https://github.com/nuke-build/nuke/compare/0.24.9...0.24.10 -[0.24.9]: https://github.com/nuke-build/nuke/compare/0.24.8...0.24.9 -[0.24.8]: https://github.com/nuke-build/nuke/compare/0.24.7...0.24.8 -[0.24.7]: https://github.com/nuke-build/nuke/compare/0.24.6...0.24.7 -[0.24.6]: https://github.com/nuke-build/nuke/compare/0.24.5...0.24.6 -[0.24.5]: https://github.com/nuke-build/nuke/compare/0.24.4...0.24.5 -[0.24.4]: https://github.com/nuke-build/nuke/compare/0.24.2...0.24.4 -[0.24.2]: https://github.com/nuke-build/nuke/compare/0.24.1...0.24.2 -[0.24.1]: https://github.com/nuke-build/nuke/compare/0.24.0...0.24.1 -[0.24.0]: https://github.com/nuke-build/nuke/compare/0.23.7...0.24.0 -[0.23.7]: https://github.com/nuke-build/nuke/compare/0.23.6...0.23.7 -[0.23.6]: https://github.com/nuke-build/nuke/compare/0.23.5...0.23.6 -[0.23.5]: https://github.com/nuke-build/nuke/compare/0.23.4...0.23.5 -[0.23.4]: https://github.com/nuke-build/nuke/compare/0.23.3...0.23.4 -[0.23.3]: https://github.com/nuke-build/nuke/compare/0.23.2...0.23.3 -[0.23.2]: https://github.com/nuke-build/nuke/compare/0.23.1...0.23.2 -[0.23.1]: https://github.com/nuke-build/nuke/compare/0.23.0...0.23.1 -[0.23.0]: https://github.com/nuke-build/nuke/compare/0.22.2...0.23.0 -[0.22.2]: https://github.com/nuke-build/nuke/compare/0.22.1...0.22.2 -[0.22.1]: https://github.com/nuke-build/nuke/compare/0.22.0...0.22.1 -[0.22.0]: https://github.com/nuke-build/nuke/compare/0.21.2...0.22.0 -[0.21.2]: https://github.com/nuke-build/nuke/compare/0.21.1...0.21.2 -[0.21.1]: https://github.com/nuke-build/nuke/compare/0.21.0...0.21.1 -[0.21.0]: https://github.com/nuke-build/nuke/compare/0.20.1...0.21.0 -[0.20.1]: https://github.com/nuke-build/nuke/compare/0.20.0...0.20.1 -[0.20.0]: https://github.com/nuke-build/nuke/compare/0.19.2...0.20.0 -[0.19.2]: https://github.com/nuke-build/nuke/compare/0.19.1...0.19.2 -[0.19.1]: https://github.com/nuke-build/nuke/compare/0.19.0...0.19.1 -[0.19.0]: https://github.com/nuke-build/nuke/compare/0.18.0...0.19.0 -[0.18.0]: https://github.com/nuke-build/nuke/compare/0.17.7...0.18.0 -[0.17.7]: https://github.com/nuke-build/nuke/compare/0.17.6...0.17.7 -[0.17.6]: https://github.com/nuke-build/nuke/compare/0.17.5...0.17.6 -[0.17.5]: https://github.com/nuke-build/nuke/compare/0.17.4...0.17.5 -[0.17.4]: https://github.com/nuke-build/nuke/compare/0.17.3...0.17.4 -[0.17.3]: https://github.com/nuke-build/nuke/compare/0.17.2...0.17.3 -[0.17.2]: https://github.com/nuke-build/nuke/compare/0.17.1...0.17.2 -[0.17.1]: https://github.com/nuke-build/nuke/compare/0.17.0...0.17.1 -[0.17.0]: https://github.com/nuke-build/nuke/compare/0.16.0...0.17.0 -[0.16.0]: https://github.com/nuke-build/nuke/compare/0.15.0...0.16.0 -[0.15.0]: https://github.com/nuke-build/nuke/compare/0.14.1...0.15.0 -[0.14.1]: https://github.com/nuke-build/nuke/compare/0.14.0...0.14.1 -[0.14.0]: https://github.com/nuke-build/nuke/compare/0.13.0...0.14.0 -[0.13.0]: https://github.com/nuke-build/nuke/compare/0.12.4...0.13.0 -[0.12.4]: https://github.com/nuke-build/nuke/compare/0.12.3...0.12.4 -[0.12.3]: https://github.com/nuke-build/nuke/compare/0.12.2...0.12.3 -[0.12.2]: https://github.com/nuke-build/nuke/compare/0.12.1...0.12.2 -[0.12.1]: https://github.com/nuke-build/nuke/compare/0.12.0...0.12.1 -[0.12.0]: https://github.com/nuke-build/nuke/compare/0.11.1...0.12.0 -[0.11.1]: https://github.com/nuke-build/nuke/compare/0.11.0...0.11.1 -[0.11.0]: https://github.com/nuke-build/nuke/compare/0.10.5...0.11.0 -[0.10.5]: https://github.com/nuke-build/nuke/compare/0.10.4...0.10.5 -[0.10.4]: https://github.com/nuke-build/nuke/compare/0.10.3...0.10.4 -[0.10.3]: https://github.com/nuke-build/nuke/compare/0.10.2...0.10.3 -[0.10.2]: https://github.com/nuke-build/nuke/compare/0.10.1...0.10.2 -[0.10.1]: https://github.com/nuke-build/nuke/compare/0.10.0...0.10.1 -[0.10.0]: https://github.com/nuke-build/nuke/compare/0.9.1...0.10.0 -[0.9.1]: https://github.com/nuke-build/nuke/compare/0.9.0...0.9.1 -[0.9.0]: https://github.com/nuke-build/nuke/compare/0.8.0...0.9.0 -[0.8.0]: https://github.com/nuke-build/nuke/compare/0.7.0...0.8.0 -[0.7.0]: https://github.com/nuke-build/nuke/compare/0.6.2...0.7.0 -[0.6.2]: https://github.com/nuke-build/nuke/compare/0.6.1...0.6.2 -[0.6.1]: https://github.com/nuke-build/nuke/compare/0.6.0...0.6.1 -[0.6.0]: https://github.com/nuke-build/nuke/compare/0.5.3...0.6.0 -[0.5.3]: https://github.com/nuke-build/nuke/compare/0.5.2...0.5.3 -[0.5.2]: https://github.com/nuke-build/nuke/compare/0.5.0...0.5.2 -[0.5.0]: https://github.com/nuke-build/nuke/compare/0.4.0...0.5.0 -[0.4.0]: https://github.com/nuke-build/nuke/compare/0.3.1...0.4.0 -[0.3.1]: https://github.com/nuke-build/nuke/compare/0.2.10...0.3.1 -[0.2.10]: https://github.com/nuke-build/nuke/compare/0.2.0...0.2.10 -[0.2.0]: https://github.com/nuke-build/nuke/tree/0.2.0 - -[vNext]: https://github.com/nuke-build/nuke/compare/7.0.4...HEAD +[vNext]: https://github.com/nuke-build/nuke/compare/7.0.5...HEAD +[7.0.5]: https://github.com/nuke-build/nuke/compare/7.0.4...7.0.5 [7.0.4]: https://github.com/nuke-build/nuke/compare/7.0.3...7.0.4 [7.0.3]: https://github.com/nuke-build/nuke/compare/7.0.2...7.0.3 [7.0.2]: https://github.com/nuke-build/nuke/compare/7.0.1...7.0.2 diff --git a/source/Nuke.Common.Tests/ChangelogTasksTest.cs b/source/Nuke.Common.Tests/ChangelogTasksTest.cs index 3f7f265d9..3f0c9d641 100644 --- a/source/Nuke.Common.Tests/ChangelogTasksTest.cs +++ b/source/Nuke.Common.Tests/ChangelogTasksTest.cs @@ -22,36 +22,6 @@ public class ChangelogTasksTest private static AbsolutePath PathToChangelogReferenceFiles => RootDirectory / "source" / "Nuke.Common.Tests" / "ChangelogReferenceFiles"; - [Theory] - [MemberData(nameof(AllChangelogReference_1_0_0_Files))] - [MemberData(nameof(AllChangelogReference_NUKE_Files))] - public void ReadReleaseNotes_ChangelogReferenceFile_ThrowsNoExceptions(AbsolutePath file) - { - Action act = () => ChangelogTasks.ReadReleaseNotes(file); - - act.Should().NotThrow(); - } - - [Theory] - [MemberData(nameof(AllChangelogReference_1_0_0_Files))] - [MemberData(nameof(AllChangelogReference_NUKE_Files))] - public void ReadReleaseNotes_ChangelogReferenceFile_ReturnsAnyReleaseNotes(AbsolutePath file) - { - var releaseNotes = ChangelogTasks.ReadReleaseNotes(file); - - releaseNotes.Should().NotBeEmpty(); - } - - [Theory] - [MemberData(nameof(AllChangelogReference_1_0_0_Files))] - [MemberData(nameof(AllChangelogReference_NUKE_Files))] - public void ReadChangelog_ChangelogReferenceFile_ThrowsNoExceptions(AbsolutePath file) - { - Action act = () => ChangelogTasks.ReadChangelog(file); - - act.Should().NotThrow(); - } - [Theory] [MemberData(nameof(AllChangelogReference_1_0_0_Files))] [MemberData(nameof(AllChangelogReference_NUKE_Files))] @@ -62,16 +32,6 @@ public void ExtractChangelogSectionNotes_ChangelogReferenceFile_ThrowsNoExceptio act.Should().NotThrow(); } - [Theory] - [MemberData(nameof(AllChangelogReference_1_0_0_Files))] - [MemberData(nameof(AllChangelogReference_NUKE_Files))] - public Task ReadReleaseNotes_ChangelogReferenceFile_HasParsedCorrectly(AbsolutePath file) - { - var releaseNotes = ChangelogTasks.ReadReleaseNotes(file); - - return Verifier.Verify(releaseNotes).UseDirectory(PathToChangelogReferenceFiles).UseFileName(file.NameWithoutExtension); - } - [Fact] public void GetReleaseSections_ChangelogReferenceFileWithoutReleaseHead_ReturnsEmpty() { diff --git a/source/Nuke.Common/ChangeLog/ChangeLogTasks.cs b/source/Nuke.Common/ChangeLog/ChangeLogTasks.cs index e992341cf..e6ecf7017 100644 --- a/source/Nuke.Common/ChangeLog/ChangeLogTasks.cs +++ b/source/Nuke.Common/ChangeLog/ChangeLogTasks.cs @@ -178,6 +178,12 @@ internal static IEnumerable GetReleaseSections(List cont static bool IsReleaseHead(string str) => str.StartsWith("## "); + static bool IsReleaseContent(string str) + => str.StartsWith("###") + || str.Trim().StartsWith("-") + || str.Trim().StartsWith("*") + || str.Trim().StartsWith("+"); + static string GetCaption(string str) => str .TrimStart('#', ' ', '[') @@ -199,7 +205,7 @@ static string GetCaption(string str) } var caption = GetCaption(line); - var nextReleaseHeadIndex = content.FindIndex(index + 1, IsReleaseHead); + var nextReleaseHeadIndex = content.FindIndex(index + 1, x => IsReleaseHead(x) || !IsReleaseContent(x)); var releaseData = new ReleaseSection diff --git a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs index 023c4726f..cad1b7faf 100644 --- a/source/Nuke.Common/Tools/Docker/Docker.Generated.cs +++ b/source/Nuke.Common/Tools/Docker/Docker.Generated.cs @@ -10116,6 +10116,87 @@ public static IReadOnlyCollection DockerBuildxBuild(Configure + ///

Create a new builder instance using Docker Buildx plugin.

+ ///

For more details, visit the official website.

+ /// + /// + ///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

+ ///
    + ///
  • <cliSettings> via
  • + ///
  • --append via
  • + ///
  • --bootstrap via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --config via
  • + ///
  • --driver via
  • + ///
  • --driver-opt via
  • + ///
  • --leave via
  • + ///
  • --name via
  • + ///
  • --node via
  • + ///
  • --platform via
  • + ///
  • --use via
  • + ///
+ ///
+ public static IReadOnlyCollection DockerBuildxCreate(DockerBuildxCreateSettings toolSettings = null) + { + toolSettings = toolSettings ?? new DockerBuildxCreateSettings(); + using var process = ProcessTasks.StartProcess(toolSettings); + toolSettings.ProcessExitHandler.Invoke(toolSettings, process.AssertWaitForExit()); + return process.Output; + } + /// + ///

Create a new builder instance using Docker Buildx plugin.

+ ///

For more details, visit the official website.

+ ///
+ /// + ///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

+ ///
    + ///
  • <cliSettings> via
  • + ///
  • --append via
  • + ///
  • --bootstrap via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --config via
  • + ///
  • --driver via
  • + ///
  • --driver-opt via
  • + ///
  • --leave via
  • + ///
  • --name via
  • + ///
  • --node via
  • + ///
  • --platform via
  • + ///
  • --use via
  • + ///
+ ///
+ public static IReadOnlyCollection DockerBuildxCreate(Configure configurator) + { + return DockerBuildxCreate(configurator(new DockerBuildxCreateSettings())); + } + /// + ///

Create a new builder instance using Docker Buildx plugin.

+ ///

For more details, visit the official website.

+ ///
+ /// + ///

This is a CLI wrapper with fluent API that allows to modify the following arguments:

+ ///
    + ///
  • <cliSettings> via
  • + ///
  • --append via
  • + ///
  • --bootstrap via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --buildkitd-flags via
  • + ///
  • --config via
  • + ///
  • --driver via
  • + ///
  • --driver-opt via
  • + ///
  • --leave via
  • + ///
  • --name via
  • + ///
  • --node via
  • + ///
  • --platform via
  • + ///
  • --use via
  • + ///
+ ///
+ public static IEnumerable<(DockerBuildxCreateSettings Settings, IReadOnlyCollection Output)> DockerBuildxCreate(CombinatorialConfigure configurator, int degreeOfParallelism = 1, bool completeOnFailure = false) + { + return configurator.Invoke(DockerBuildxCreate, DockerLogger, degreeOfParallelism, completeOnFailure); + } + /// ///

Display a live stream of container(s) resource usage statistics.

///

For more details, visit the official website.

///
@@ -21849,6 +21930,90 @@ protected override Arguments ConfigureProcessArguments(Arguments arguments) } } #endregion +#region DockerBuildxCreateSettings +/// +/// Used within . +/// +[PublicAPI] +[ExcludeFromCodeCoverage] +[Serializable] +public partial class DockerBuildxCreateSettings : DockerSettings +{ + /// + /// Path to the Docker executable. + /// + public override string ProcessToolPath => base.ProcessToolPath ?? DockerTasks.DockerPath; + public override Action ProcessLogger => base.ProcessLogger ?? DockerTasks.DockerLogger; + public override Action ProcessExitHandler => base.ProcessExitHandler ?? DockerTasks.DockerExitHandler; + /// + /// Append a node to builder instead of changing it. + /// + public virtual bool? Append { get; internal set; } + /// + /// Boot builder after creation. + /// + public virtual bool? Bootstrap { get; internal set; } + /// + /// Flags for buildkitd daemon. + /// + public virtual string BuildKitDaemonFlags { get; internal set; } + /// + /// Flags for buildkitd daemon. + /// + public virtual string BuildKitDFlags { get; internal set; } + /// + /// BuildKit config file. + /// + public virtual string Config { get; internal set; } + /// + /// Driver to use (available: docker-container, kubernetes, remote). + /// + public virtual DriverType Driver { get; internal set; } + /// + /// Options for the driver. + /// + public virtual string DriverOpt { get; internal set; } + /// + /// Remove a node from builder instead of changing it. + /// + public virtual bool? Leave { get; internal set; } + /// + /// Builder instance name. + /// + public virtual string Name { get; internal set; } + /// + /// Create/modify node with given name. + /// + public virtual string Node { get; internal set; } + /// + /// Fixed platforms for current node. + /// + public virtual string Platform { get; internal set; } + /// + /// Set the current builder instance. + /// + public virtual bool? Use { get; internal set; } + protected override Arguments ConfigureProcessArguments(Arguments arguments) + { + arguments + .Add("buildx create") + .Add("--append", Append) + .Add("--bootstrap", Bootstrap) + .Add("--buildkitd-flags {value}", BuildKitDaemonFlags) + .Add("--buildkitd-flags {value}", BuildKitDFlags) + .Add("--config {value}", Config) + .Add("--driver {value}", Driver) + .Add("--driver-opt {value}", DriverOpt) + .Add("--leave", Leave) + .Add("--name {value}", Name) + .Add("--node {value}", Node) + .Add("--platform {value}", Platform) + .Add("--use", Use) + .Add("{value}", GetCliSettings(), customValue: true); + return base.ConfigureProcessArguments(arguments); + } +} +#endregion #region DockerStatsSettings /// /// Used within . @@ -74499,6 +74664,436 @@ public static T ResetPath(this T toolSettings) where T : DockerBuildxBuildSet #endregion } #endregion +#region DockerBuildxCreateSettingsExtensions +/// +/// Used within . +/// +[PublicAPI] +[ExcludeFromCodeCoverage] +public static partial class DockerBuildxCreateSettingsExtensions +{ + #region Append + /// + ///

Sets

+ ///

Append a node to builder instead of changing it.

+ ///
+ [Pure] + public static T SetAppend(this T toolSettings, bool? append) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Append = append; + return toolSettings; + } + /// + ///

Resets

+ ///

Append a node to builder instead of changing it.

+ ///
+ [Pure] + public static T ResetAppend(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Append = null; + return toolSettings; + } + /// + ///

Enables

+ ///

Append a node to builder instead of changing it.

+ ///
+ [Pure] + public static T EnableAppend(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Append = true; + return toolSettings; + } + /// + ///

Disables

+ ///

Append a node to builder instead of changing it.

+ ///
+ [Pure] + public static T DisableAppend(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Append = false; + return toolSettings; + } + /// + ///

Toggles

+ ///

Append a node to builder instead of changing it.

+ ///
+ [Pure] + public static T ToggleAppend(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Append = !toolSettings.Append; + return toolSettings; + } + #endregion + #region Bootstrap + /// + ///

Sets

+ ///

Boot builder after creation.

+ ///
+ [Pure] + public static T SetBootstrap(this T toolSettings, bool? bootstrap) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Bootstrap = bootstrap; + return toolSettings; + } + /// + ///

Resets

+ ///

Boot builder after creation.

+ ///
+ [Pure] + public static T ResetBootstrap(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Bootstrap = null; + return toolSettings; + } + /// + ///

Enables

+ ///

Boot builder after creation.

+ ///
+ [Pure] + public static T EnableBootstrap(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Bootstrap = true; + return toolSettings; + } + /// + ///

Disables

+ ///

Boot builder after creation.

+ ///
+ [Pure] + public static T DisableBootstrap(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Bootstrap = false; + return toolSettings; + } + /// + ///

Toggles

+ ///

Boot builder after creation.

+ ///
+ [Pure] + public static T ToggleBootstrap(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Bootstrap = !toolSettings.Bootstrap; + return toolSettings; + } + #endregion + #region BuildKitDaemonFlags + /// + ///

Sets

+ ///

Flags for buildkitd daemon.

+ ///
+ [Pure] + public static T SetBuildKitDaemonFlags(this T toolSettings, string buildKitDaemonFlags) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.BuildKitDaemonFlags = buildKitDaemonFlags; + return toolSettings; + } + /// + ///

Resets

+ ///

Flags for buildkitd daemon.

+ ///
+ [Pure] + public static T ResetBuildKitDaemonFlags(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.BuildKitDaemonFlags = null; + return toolSettings; + } + #endregion + #region BuildKitDFlags + /// + ///

Sets

+ ///

Flags for buildkitd daemon.

+ ///
+ [Pure] + public static T SetBuildKitDFlags(this T toolSettings, string buildKitDFlags) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.BuildKitDFlags = buildKitDFlags; + return toolSettings; + } + /// + ///

Resets

+ ///

Flags for buildkitd daemon.

+ ///
+ [Pure] + public static T ResetBuildKitDFlags(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.BuildKitDFlags = null; + return toolSettings; + } + #endregion + #region Config + /// + ///

Sets

+ ///

BuildKit config file.

+ ///
+ [Pure] + public static T SetConfig(this T toolSettings, string config) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Config = config; + return toolSettings; + } + /// + ///

Resets

+ ///

BuildKit config file.

+ ///
+ [Pure] + public static T ResetConfig(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Config = null; + return toolSettings; + } + #endregion + #region Driver + /// + ///

Sets

+ ///

Driver to use (available: docker-container, kubernetes, remote).

+ ///
+ [Pure] + public static T SetDriver(this T toolSettings, DriverType driver) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Driver = driver; + return toolSettings; + } + /// + ///

Resets

+ ///

Driver to use (available: docker-container, kubernetes, remote).

+ ///
+ [Pure] + public static T ResetDriver(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Driver = null; + return toolSettings; + } + #endregion + #region DriverOpt + /// + ///

Sets

+ ///

Options for the driver.

+ ///
+ [Pure] + public static T SetDriverOpt(this T toolSettings, string driverOpt) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.DriverOpt = driverOpt; + return toolSettings; + } + /// + ///

Resets

+ ///

Options for the driver.

+ ///
+ [Pure] + public static T ResetDriverOpt(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.DriverOpt = null; + return toolSettings; + } + #endregion + #region Leave + /// + ///

Sets

+ ///

Remove a node from builder instead of changing it.

+ ///
+ [Pure] + public static T SetLeave(this T toolSettings, bool? leave) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Leave = leave; + return toolSettings; + } + /// + ///

Resets

+ ///

Remove a node from builder instead of changing it.

+ ///
+ [Pure] + public static T ResetLeave(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Leave = null; + return toolSettings; + } + /// + ///

Enables

+ ///

Remove a node from builder instead of changing it.

+ ///
+ [Pure] + public static T EnableLeave(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Leave = true; + return toolSettings; + } + /// + ///

Disables

+ ///

Remove a node from builder instead of changing it.

+ ///
+ [Pure] + public static T DisableLeave(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Leave = false; + return toolSettings; + } + /// + ///

Toggles

+ ///

Remove a node from builder instead of changing it.

+ ///
+ [Pure] + public static T ToggleLeave(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Leave = !toolSettings.Leave; + return toolSettings; + } + #endregion + #region Name + /// + ///

Sets

+ ///

Builder instance name.

+ ///
+ [Pure] + public static T SetName(this T toolSettings, string name) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Name = name; + return toolSettings; + } + /// + ///

Resets

+ ///

Builder instance name.

+ ///
+ [Pure] + public static T ResetName(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Name = null; + return toolSettings; + } + #endregion + #region Node + /// + ///

Sets

+ ///

Create/modify node with given name.

+ ///
+ [Pure] + public static T SetNode(this T toolSettings, string node) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Node = node; + return toolSettings; + } + /// + ///

Resets

+ ///

Create/modify node with given name.

+ ///
+ [Pure] + public static T ResetNode(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Node = null; + return toolSettings; + } + #endregion + #region Platform + /// + ///

Sets

+ ///

Fixed platforms for current node.

+ ///
+ [Pure] + public static T SetPlatform(this T toolSettings, string platform) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Platform = platform; + return toolSettings; + } + /// + ///

Resets

+ ///

Fixed platforms for current node.

+ ///
+ [Pure] + public static T ResetPlatform(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Platform = null; + return toolSettings; + } + #endregion + #region Use + /// + ///

Sets

+ ///

Set the current builder instance.

+ ///
+ [Pure] + public static T SetUse(this T toolSettings, bool? use) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Use = use; + return toolSettings; + } + /// + ///

Resets

+ ///

Set the current builder instance.

+ ///
+ [Pure] + public static T ResetUse(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Use = null; + return toolSettings; + } + /// + ///

Enables

+ ///

Set the current builder instance.

+ ///
+ [Pure] + public static T EnableUse(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Use = true; + return toolSettings; + } + /// + ///

Disables

+ ///

Set the current builder instance.

+ ///
+ [Pure] + public static T DisableUse(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Use = false; + return toolSettings; + } + /// + ///

Toggles

+ ///

Set the current builder instance.

+ ///
+ [Pure] + public static T ToggleUse(this T toolSettings) where T : DockerBuildxCreateSettings + { + toolSettings = toolSettings.NewInstance(); + toolSettings.Use = !toolSettings.Use; + return toolSettings; + } + #endregion +} +#endregion #region DockerStatsSettingsExtensions /// /// Used within . @@ -82242,3 +82837,22 @@ public static implicit operator ProgressType(string value) } } #endregion +#region DriverType +/// +/// Used within . +/// +[PublicAPI] +[Serializable] +[ExcludeFromCodeCoverage] +[TypeConverter(typeof(TypeConverter))] +public partial class DriverType : Enumeration +{ + public static DriverType docker_container = (DriverType) "docker-container"; + public static DriverType kubernetes = (DriverType) "kubernetes"; + public static DriverType remote = (DriverType) "remote"; + public static implicit operator DriverType(string value) + { + return new DriverType { Value = value }; + } +} +#endregion diff --git a/source/Nuke.Common/Tools/Docker/Docker.json b/source/Nuke.Common/Tools/Docker/Docker.json index eb66b179b..8f5075e78 100644 --- a/source/Nuke.Common/Tools/Docker/Docker.json +++ b/source/Nuke.Common/Tools/Docker/Docker.json @@ -90,6 +90,7 @@ "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/engine-cli/docker_system_prune.yaml", "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/engine-cli/docker_builder.yaml", "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/buildx/docker_buildx_build.yaml", + "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/buildx/docker_buildx_create.yaml", "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/engine-cli/docker_container_pause.yaml", "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/engine-cli/docker_container_commit.yaml", "https://raw.githubusercontent.com/docker/docker.github.io/50fe61e/_data/engine-cli/docker_context_ls.yaml", @@ -8515,6 +8516,88 @@ ] } }, + { + "help": "Create a new builder instance using Docker Buildx plugin.", + "postfix": "BuildxCreate", + "definiteArgument": "buildx create", + "settingsClass": { + "baseClass": "DockerSettings", + "properties": [ + { + "name": "Append", + "type": "bool", + "format": "--append", + "help": "Append a node to builder instead of changing it." + }, + { + "name": "Bootstrap", + "type": "bool", + "format": "--bootstrap", + "help": "Boot builder after creation." + }, + { + "name": "BuildKitDaemonFlags", + "type": "string", + "format": "--buildkitd-flags {value}", + "help": "Flags for buildkitd daemon." + }, + { + "name": "BuildKitDFlags", + "type": "string", + "format": "--buildkitd-flags {value}", + "help": "Flags for buildkitd daemon." + }, + { + "name": "Config", + "type": "string", + "format": "--config {value}", + "help": "BuildKit config file." + }, + { + "name": "Driver", + "type": "DriverType", + "format": "--driver {value}", + "help": "Driver to use (available: docker-container, kubernetes, remote)." + }, + { + "name": "DriverOpt", + "type": "string", + "format": "--driver-opt {value}", + "help": "Options for the driver." + }, + { + "name": "Leave", + "type": "bool", + "format": "--leave", + "help": "Remove a node from builder instead of changing it." + }, + { + "name": "Name", + "type": "string", + "format": "--name {value}", + "help": "Builder instance name." + }, + { + "name": "Node", + "type": "string", + "format": "--node {value}", + "help": "Create/modify node with given name." + }, + { + "name": "Platform", + "type": "string", + "format": "--platform {value}", + "help": "Fixed platforms for current node." + }, + { + "name": "Use", + "type": "bool", + "format": "--use", + "help": "Set the current builder instance." + } + ] + } + }, { "help": "Display a live stream of container(s) resource usage statistics.", "postfix": "Stats", @@ -10079,6 +10162,14 @@ "plain", "tty" ] + }, + { + "name": "DriverType", + "values": [ + "docker-container", + "kubernetes", + "remote" + ] } ] } diff --git a/source/Nuke.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs b/source/Nuke.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs index 45c26af21..aafad5c1e 100644 --- a/source/Nuke.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs +++ b/source/Nuke.Common/Tools/Docker/DockerTargetDefinitionExtensions.cs @@ -85,7 +85,8 @@ bool IsUpToDate() => build.BuildAssemblyDirectory.GlobFiles("*.dll") var envFile = buildAssemblyDirectory / $".env.{definition.Name}"; var environmentVariables = GetEnvironmentVariables(settings, rootDirectory, tempDirectory); - envFile.WriteAllLines(environmentVariables.Select(x => $"{x.Key}={x.Value}")); + envFile.WriteAllLines(environmentVariables.Where(x => x.Value != null).Select(x => $"{x.Key}={x.Value}") + .Concat(environmentVariables.Where(x => x.Value == null).Select(x => x.Key))); localTempDirectory.CreateOrCleanDirectory(); if (!settings.Username.IsNullOrEmpty()) @@ -101,25 +102,23 @@ bool IsUpToDate() => build.BuildAssemblyDirectory.GlobFiles("*.dll") try { - using (DelegateDisposable.SetAndRestore(() => DockerLogger, (_, message) => Log.Write(LogEventReader.ReadFromString(message)))) - { - Log.Information("Launching target in {Image}...", settings.Image); - DockerTasks.DockerRun(_ => settings - .When(!settings.Rm.HasValue, _ => _ - .EnableRm()) - .AddVolume($"{build.RootDirectory}:{rootDirectory}") - .AddVolume($"{NuGetPackageResolver.GetPackagesDirectory(NuGetToolPathResolver.NuGetPackagesConfigFile)}:{nugetDirectory}") - .SetPlatform(settings.Platform) - .SetWorkdir(rootDirectory) - .SetEnvFile(envFile) - .SetEntrypoint(rootDirectory / build.RootDirectory.GetRelativePathTo(buildAssembly)) - .SetArgs(new[] - { - definition.Target.Name, - $"--{ParameterService.GetParameterDashedName(Constants.SkippedTargetsParameterName)}" - }.Concat(settings.Args)) - .DisableProcessLogInvocation()); - } + Log.Information("Launching target in {Image}...", settings.Image); + DockerTasks.DockerRun(_ => settings + .When(!settings.Rm.HasValue, _ => _ + .EnableRm()) + .AddVolume($"{build.RootDirectory}:{rootDirectory}") + .AddVolume($"{NuGetPackageResolver.GetPackagesDirectory(NuGetToolPathResolver.NuGetPackagesConfigFile)}:{nugetDirectory}") + .SetPlatform(settings.Platform) + .SetWorkdir(rootDirectory) + .SetEnvFile(envFile) + .SetEntrypoint(rootDirectory / build.RootDirectory.GetRelativePathTo(buildAssembly)) + .SetArgs(new[] + { + definition.Target.Name, + $"--{ParameterService.GetParameterDashedName(Constants.SkippedTargetsParameterName)}" + }.Concat(settings.Args)) + .DisableProcessLogInvocation() + .SetProcessLogger((_, message) => Log.Write(LogEventReader.ReadFromString(message)))); } finally { @@ -164,14 +163,18 @@ private static IReadOnlyDictionary GetEnvironmentVariables( "USERPROFILE", }; + settings.ProcessEnvironmentVariables.Where(x => x.Value.Contains(EnvironmentInfo.NewLine)) + .ForEach(x => Log.Warning("Environment variable {Variable} contains newlines and cannot be passed to Docker", x.Key)); + return customEnvironmentVariables .AddDictionary(settings.ProcessEnvironmentVariables .Where(x => !customEnvironmentVariables.Keys.Contains(x.Key, StringComparer.OrdinalIgnoreCase) && // TODO: Copy from TeamCity? !x.Key.Contains(' ') && - !x.Key.EqualsAnyOrdinalIgnoreCase(excludedEnvironmentVariables)) - .ToDictionary(x => x.Key, x => x.Value).AsReadOnly()) + !x.Key.EqualsAnyOrdinalIgnoreCase(excludedEnvironmentVariables) && + !x.Value.Contains(EnvironmentInfo.NewLine)) + .ToDictionary(x => x.Key, _ => default(string)).AsReadOnly()) .ToImmutableSortedDictionary(); } }