Adding Build Validation

Create gradle.yml
This commit is contained in:
Speiger 2021-12-27 20:38:55 +01:00 committed by GitHub
commit cda6ec066d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 68 additions and 7 deletions

36
.github/workflows/build_validator.yml vendored Normal file
View File

@ -0,0 +1,36 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Java CI with Gradle
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up JDK 11
uses: actions/setup-java@v1
with:
java-version: '11'
distribution: 'adopt'
cache: gradle
- name: Validate Gradle wrapper
uses: gradle/wrapper-validation-action@e6e38bacfdf1a337459f332974bb2327a31aaf4b
- name: Make gradlew executable
run: chmod +x ./gradlew
- name: Generate SourceCode with Gradle
run: ./gradlew generateGithubSource
- name: Build with Gradle
run: ./gradlew build

View File

@ -42,8 +42,8 @@ configurations {
} }
dependencies { dependencies {
builderCompile 'de.speiger:Simple-Code-Generator:1.0.5' builderCompile 'de.speiger:Simple-Code-Generator:1.0.6'
runtimeOnly 'de.speiger:Simple-Code-Generator:1.0.5' runtimeOnly 'de.speiger:Simple-Code-Generator:1.0.6'
testImplementation 'junit:junit:4.12' testImplementation 'junit:junit:4.12'
testImplementation 'com.google.guava:guava-testlib:31.0.1-jre' testImplementation 'com.google.guava:guava-testlib:31.0.1-jre'
} }
@ -55,6 +55,14 @@ task generateSource(type: JavaExec) {
main = 'speiger.src.builder.PrimitiveCollectionsBuilder' main = 'speiger.src.builder.PrimitiveCollectionsBuilder'
} }
task generateGithubSource(type: JavaExec) {
group = 'internal'
description = 'Builds the sourcecode for Github Actions'
classpath = sourceSets.builder.runtimeClasspath
main = 'speiger.src.builder.PrimitiveCollectionsBuilder'
args = ['false', 'true']
}
task forceGenerateSource(type: JavaExec) { task forceGenerateSource(type: JavaExec) {
group = 'internal' group = 'internal'
description = 'Builds the sourcecode forceful' description = 'Builds the sourcecode forceful'
@ -88,7 +96,10 @@ test {
uploadArchives { uploadArchives {
Properties props = new Properties() Properties props = new Properties()
props.load(new FileInputStream("$buildDir/credentials.properties")) if(file("$buildDir/credentials.properties").exists())
{
props.load(new FileInputStream("$buildDir/credentials.properties"))
}
repositories.mavenDeployer { repositories.mavenDeployer {
repository(url: 'https://maven.speiger.com/repository/main') { repository(url: 'https://maven.speiger.com/repository/main') {
authentication(userName: props.mavenUser, password: props.mavenPassword) authentication(userName: props.mavenUser, password: props.mavenPassword)

View File

@ -29,12 +29,22 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
public PrimitiveCollectionsBuilder() public PrimitiveCollectionsBuilder()
{ {
super(Paths.get("src/builder/resources/speiger/assets/collections/templates/"), Paths.get("src/main/java/speiger/src/collections/"), Paths.get("src/builder/resources/speiger/assets/collections/")); this(false);
}
public PrimitiveCollectionsBuilder(boolean silencedSuccess)
{
super(silencedSuccess, Paths.get("src/builder/resources/speiger/assets/collections/templates/"), Paths.get("src/main/java/speiger/src/collections/"), Paths.get("src/builder/resources/speiger/assets/collections/"));
} }
public PrimitiveCollectionsBuilder(Path sourceFolder, Path outputFolder, Path dataFolder) public PrimitiveCollectionsBuilder(Path sourceFolder, Path outputFolder, Path dataFolder)
{ {
super(sourceFolder, outputFolder, dataFolder); this(false, sourceFolder, outputFolder, dataFolder);
}
public PrimitiveCollectionsBuilder(boolean silencedSuccess, Path sourceFolder, Path outputFolder, Path dataFolder)
{
super(silencedSuccess, sourceFolder, outputFolder, dataFolder);
} }
@Override @Override
@ -159,10 +169,14 @@ public class PrimitiveCollectionsBuilder extends TemplateProcessor
new PrimitiveCollectionsBuilder().process(false); new PrimitiveCollectionsBuilder().process(false);
} else if(args.length == 1) { } else if(args.length == 1) {
new PrimitiveCollectionsBuilder().process(Boolean.parseBoolean(args[0])); new PrimitiveCollectionsBuilder().process(Boolean.parseBoolean(args[0]));
} else if(args.length == 2) {
new PrimitiveCollectionsBuilder(Boolean.parseBoolean(args[1])).process(Boolean.parseBoolean(args[0]));
} else if(args.length == 3) { } else if(args.length == 3) {
new PrimitiveCollectionsBuilder(Paths.get(args[0]), Paths.get(args[1]), Paths.get(args[2])).process(false); new PrimitiveCollectionsBuilder(Paths.get(args[0]), Paths.get(args[1]), Paths.get(args[2])).process(false);
} else if(args.length == 4) { } else if(args.length == 4) {
new PrimitiveCollectionsBuilder(Paths.get(args[0]), Paths.get(args[1]), Paths.get(args[2])).process(Boolean.parseBoolean(args[3])); new PrimitiveCollectionsBuilder(false, Paths.get(args[0]), Paths.get(args[1]), Paths.get(args[2])).process(Boolean.parseBoolean(args[3]));
} else if(args.length == 4) {
new PrimitiveCollectionsBuilder(Boolean.parseBoolean(args[4]), Paths.get(args[0]), Paths.get(args[1]), Paths.get(args[2])).process(Boolean.parseBoolean(args[3]));
} else { } else {
System.out.println("Invalid argument count passed in"); System.out.println("Invalid argument count passed in");
System.exit(1); System.exit(1);