Refactoring to batch (#181)
The rationale of this pull request is to * have more maintainable and granular code * not maintain the custom made job engine * allow the users to customize the defaults of the releaser more easy * allow the users to create their own steps without the need to change any existing code * allow the users to fully change the flows and tasks logic * abstract underlying batch mechanism (Spring Batch) so it doesn't leak to production code * allow parallelization of the release process and release tasks
This commit is contained in:
committed by
GitHub
parent
ea85372e05
commit
8992e45321
@@ -0,0 +1,41 @@
|
||||
/*
|
||||
* Copyright 2013-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package releaser;
|
||||
|
||||
import releaser.internal.options.Parser;
|
||||
import releaser.internal.spring.ExecutionResultHandler;
|
||||
import releaser.internal.spring.SpringReleaser;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.WebApplicationType;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class ReleaserApplication extends ReleaserCommandLineRunner {
|
||||
|
||||
public ReleaserApplication(SpringReleaser releaser,
|
||||
ExecutionResultHandler executionResultHandler, Parser parser) {
|
||||
super(releaser, executionResultHandler, parser);
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication application = new SpringApplication(ReleaserApplication.class);
|
||||
application.setWebApplicationType(WebApplicationType.NONE);
|
||||
application.run(args);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
spring:
|
||||
main:
|
||||
web-application-type: none
|
||||
datasource:
|
||||
url: jdbc:h2:mem:${random.uuid}
|
||||
jackson:
|
||||
deserialization:
|
||||
FAIL_ON_UNKNOWN_PROPERTIES: true
|
||||
releaser:
|
||||
git:
|
||||
release-train-bom-url: https://github.com/spring-cloud/spring-cloud-stream-starters
|
||||
documentation-url: https://github.com/spring-cloud/spring-cloud-static
|
||||
number-of-checked-milestones: 50
|
||||
update-github-milestones: true
|
||||
pom:
|
||||
branch: master
|
||||
pom-with-boot-starter-parent: spring-cloud-starter-parent/pom.xml
|
||||
this-train-bom: spring-cloud-stream-dependencies/pom.xml
|
||||
bom-version-pattern: "^(spring-cloud-.*)\\.version$"
|
||||
ignored-pom-regex:
|
||||
- "^.*\\.git/.*$"
|
||||
maven:
|
||||
build-command: "./mvnw clean install -B -Pdocs {{systemProps}}"
|
||||
deploy-command: "./mvnw deploy -DskipTests -B -Pfast,deploy {{systemProps}}"
|
||||
deploy-guides-command: "./mvnw clean verify deploy -B -Pguides,integration -pl guides {{systemProps}}"
|
||||
publish-docs-commands:
|
||||
- "mkdir -p target"
|
||||
- "wget https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/ghpages.sh -O target/gh-pages.sh"
|
||||
- "chmod +x target/gh-pages.sh"
|
||||
- "./target/gh-pages.sh -v {{version}} -c"
|
||||
generate-release-train-docs-command: "bash release_train.sh --retrieveversions --version {{version}} --ghpages --auto"
|
||||
sagan:
|
||||
update-sagan: true
|
||||
meta-release:
|
||||
release-train-project-name: spring-cloud-stream-starters
|
||||
release-train-dependency-names:
|
||||
- spring-cloud-stream-dependencies
|
||||
git-org-url: https://github.com/spring-cloud
|
||||
projects-to-skip:
|
||||
- spring-boot
|
||||
- spring-cloud-build
|
||||
- spring-cloud-function
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 2013-2019 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package releaser;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.mockito.Mockito;
|
||||
import releaser.internal.options.Parser;
|
||||
import releaser.internal.spring.ExecutionResultHandler;
|
||||
import releaser.internal.spring.SpringReleaser;
|
||||
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@SpringBootTest(
|
||||
classes = { ReleaserApplicationTests.Config.class, ReleaserApplication.class },
|
||||
properties = { "releaser.sagan.update-sagan=false" })
|
||||
class ReleaserApplicationTests {
|
||||
|
||||
@Test
|
||||
void contextLoads() {
|
||||
|
||||
}
|
||||
|
||||
@Configuration
|
||||
static class Config {
|
||||
|
||||
@Bean
|
||||
SpringReleaser mockReleaser() {
|
||||
return Mockito.mock(SpringReleaser.class);
|
||||
}
|
||||
|
||||
@Bean
|
||||
ExecutionResultHandler mockExecutionResultHandler() {
|
||||
return Mockito.mock(ExecutionResultHandler.class);
|
||||
}
|
||||
|
||||
@Bean
|
||||
Parser mockParser() {
|
||||
return Mockito.mock(Parser.class);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user