Skip to content

Commit

Permalink
feat: follow for app deployments. (#3)
Browse files Browse the repository at this point in the history
* chore: upgraded dependencies
* chore: set version 2.5.10

* feat: Can now follow app deployments
  • Loading branch information
oscarostrand committed Jun 29, 2023
1 parent 266f702 commit 9589088
Show file tree
Hide file tree
Showing 7 changed files with 124 additions and 110 deletions.
192 changes: 87 additions & 105 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,23 +11,18 @@
<parent>
<groupId>io.micronaut</groupId>
<artifactId>micronaut-parent</artifactId>
<version>3.8.0</version>
<version>3.9.0</version>
</parent>

<properties>
<packaging>jar</packaging>
<jdk.version>17</jdk.version>
<release.version>17</release.version>
<micronaut.version>3.8.0</micronaut.version>
<micronaut.version>3.9.0</micronaut.version>
<exec.mainClass>se.attini.cli.AttiniCliCommand</exec.mainClass>
</properties>

<dependencies>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.7.36</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
Expand Down Expand Up @@ -246,7 +241,7 @@
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.14.2</version>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>io.micronaut.picocli</groupId>
Expand Down Expand Up @@ -300,106 +295,93 @@
<profile>
<id>gen-docs</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- Uncomment to enable incremental compilation -->
<!-- <useIncrementalCompilation>false</useIncrementalCompilation> -->
<annotationProcessorPaths combine.children="append">
<path>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Amicronaut.processing.group=se.attini.cli</arg>
<arg>-Amicronaut.processing.module=attini-cli</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<imageName>attini</imageName>
</configuration>
</plugin>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<!-- Uncomment to enable incremental compilation -->
<!-- <useIncrementalCompilation>false</useIncrementalCompilation> -->
<annotationProcessorPaths combine.children="append">
<path>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>${picocli.version}</version>
</path>
</annotationProcessorPaths>
<compilerArgs>
<arg>-Amicronaut.processing.group=se.attini.cli</arg>
<arg>-Amicronaut.processing.module=attini-cli</arg>
</compilerArgs>
</configuration>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<configuration>
<imageName>attini</imageName>
</configuration>
</plugin>


<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>generateManPages</id>
<phase>process-classes</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration combine.self="override">
<includeProjectDependencies>true</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<mainClass>picocli.codegen.docgen.manpage.ManPageGenerator</mainClass>
<arguments>
<argument>--outdir=${project.build.directory}/generated-attini-docs</argument>
<argument>--factory=io.micronaut.configuration.picocli.MicronautFactory </argument>
<argument>se.attini.cli.AttiniCliCommand</argument>
</arguments>
</configuration>
<dependencies>
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>4.6.3</version>
<type>jar</type>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>generateManPages</id>
<phase>process-classes</phase>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration combine.self="override">
<includeProjectDependencies>true</includeProjectDependencies>
<includePluginDependencies>true</includePluginDependencies>
<mainClass>picocli.codegen.docgen.manpage.ManPageGenerator</mainClass>
<arguments>
<argument>--outdir=${project.build.directory}/generated-attini-docs</argument>
<argument>--factory=io.micronaut.configuration.picocli.MicronautFactory</argument>
<argument>se.attini.cli.AttiniCliCommand</argument>
</arguments>
</configuration>
<dependencies>
<dependency>
<groupId>info.picocli</groupId>
<artifactId>picocli-codegen</artifactId>
<version>4.6.3</version>
<type>jar</type>
</dependency>
</dependencies>
</plugin>

<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>output-html</id>
<phase>process-classes</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<attributes>
<source-highlighter>coderay</source-highlighter>
<stylesheet>${project.basedir}/src/doc-style/attini-style.css</stylesheet>
</attributes>
<backend>html5</backend>
</configuration>
</execution>
<!-- <execution>-->
<!-- <id>output-manpage</id>-->
<!-- <phase>process-classes</phase>-->
<!-- <goals>-->
<!-- <goal>process-asciidoc</goal>-->
<!-- </goals>-->
<!-- <configuration>-->
<!-- <attributes>-->
<!-- <source-highlighter>coderay</source-highlighter>-->
<!-- </attributes>-->
<!-- <backend>manpage</backend>-->
<!-- </configuration>-->
<!-- </execution>-->
</executions>
<configuration>
<sourceDirectory>${project.build.directory}/generated-attini-docs</sourceDirectory>
</configuration>
</plugin>
</plugins>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>
<version>2.1.0</version>
<executions>
<execution>
<id>output-html</id>
<phase>process-classes</phase>
<goals>
<goal>process-asciidoc</goal>
</goals>
<configuration>
<attributes>
<source-highlighter>coderay</source-highlighter>
<stylesheet>${project.basedir}/src/doc-style/attini-style.css</stylesheet>
</attributes>
<backend>html5</backend>
</configuration>
</execution>
</executions>
<configuration>
<sourceDirectory>${project.build.directory}/generated-attini-docs</sourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/se/attini/cli/AttiniCliCommand.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,8 +59,8 @@ public static void main(String[] args) {

public static class VersionProvider implements CommandLine.IVersionProvider {
public final static int MAJOR = 2;
public final static int MINOR = 5;
public final static int PATCH = 9;
public final static int MINOR = 6;
public final static int PATCH = 0;

public static final String VERSION_STRING = MAJOR + "." + MINOR + "." + PATCH;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import se.attini.domain.DeploymentError;
import se.attini.domain.DeploymentPlanStatus;
import se.attini.domain.DeploymentPlanStepStatus;
import se.attini.domain.DeploymentType;
import se.attini.domain.ExecutionArn;
import se.attini.domain.InitStackError;
import se.attini.domain.Region;
Expand Down Expand Up @@ -111,13 +112,14 @@ public void followDeployment(FollowDeploymentRequest request) {
}
throw new IllegalStateException(deploymentError.getErrorMessage());
}

if (deployment.getStackName().isPresent()) {
if (!deployment.isInitStackUnchanged()) {
if (deployment.getDeploymentType() == DeploymentType.PLATFORM && !deployment.isInitStackUnchanged()) {
dataEmitter.emitString("Deploying init stack");
pollDeploymentPlanCloudFormation(deployment.getStackName().get(),
dataEmitter,
getDeploymentRequest);
} else {
} else if(deployment.getDeploymentType() == DeploymentType.PLATFORM) {
dataEmitter.emitString("No changes to init stack");
}

Expand Down
3 changes: 2 additions & 1 deletion src/main/java/se/attini/deployment/StepLoggerFactory.java
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ public StepLoggerFactory(AwsClientFactory awsClientFactory,

public StepLogger getLogger(GetLoggerRequest getLoggerRequest,
String stepName) {
if ("AttiniRunnerJob".equals(getLoggerRequest.type()) || "AttiniCdk".equals(getLoggerRequest.type())) {
if ("AttiniRunnerJob".equals(getLoggerRequest.type()) || "AttiniCdk".equals(getLoggerRequest.type()) || "AttiniPackageSam".equals(
getLoggerRequest.type())) {
Region givenRegion = profileFacade.getRegion();
String account = awsAccountFacade.getAccount();
return new AttiniRunnerLogger(awsClientFactory.s3Client(),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
import se.attini.domain.DeploymentError;
import se.attini.domain.DeploymentPlanCount;
import se.attini.domain.DeploymentPlanStepError;
import se.attini.domain.DeploymentType;
import se.attini.domain.Distribution;
import se.attini.domain.DistributionId;
import se.attini.domain.DistributionName;
Expand Down Expand Up @@ -45,6 +46,9 @@ public class DeploymentHistoryFacade {
public static final String ERROR_CODE_FIELD = "errorCode";
public static final String ERROR_MESSAGE_FIELD = "errorMessage";
public static final String STACK_NAME_FIELD = "stackName";

public static final String DEPLOYMENT_TYPE_FIELD = "deploymentType";

public static final String EXECUTION_ARNS_FIELD = "executionArns";
public static final String DEPLOYMENT_PLAN_COUNT_FIELD = "deploymentPlanCount";
public static final String INIT_STACK_ERRORS = "initStackErrors";
Expand Down Expand Up @@ -199,6 +203,12 @@ private static Deployment toDeployment(Map<String, AttributeValue> item) {
builder.setStackName(StackName.create(item.get(STACK_NAME_FIELD).s()));
}

if (item.get(DEPLOYMENT_TYPE_FIELD) != null) {
builder.setDeploymentType(item.get(DEPLOYMENT_TYPE_FIELD)
.s()
.equals("app") ? DeploymentType.APP : DeploymentType.PLATFORM);
}

if (item.get(INIT_STACK_ERRORS) != null) {
List<InitStackError> initStackErrors = item.get(INIT_STACK_ERRORS)
.l()
Expand Down
14 changes: 14 additions & 0 deletions src/main/java/se/attini/domain/Deployment.java
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ public class Deployment {

private final String version;

private final DeploymentType deploymentType;


private Deployment(Builder builder) {
this.distribution = builder.distribution;
Expand All @@ -44,6 +46,7 @@ private Deployment(Builder builder) {
this.deploymentPlanStatus = builder.deploymentPlanStatus;
this.attiniSteps = builder.attiniSteps;
this.version =builder.version;
this.deploymentType = builder.deploymentType == null ? DeploymentType.PLATFORM : builder.deploymentType;
}

public static Builder builder() {
Expand Down Expand Up @@ -107,6 +110,10 @@ public Optional<String> getVersion() {
return Optional.ofNullable(version);
}

public DeploymentType getDeploymentType() {
return deploymentType;
}

@Override
public boolean equals(Object o) {
if (this == o) return true;
Expand Down Expand Up @@ -189,6 +196,8 @@ public static class Builder {

private String version;

private DeploymentType deploymentType;



private Builder() {
Expand Down Expand Up @@ -264,6 +273,11 @@ public Builder setVersion(String version) {
return this;
}

public Builder setDeploymentType(DeploymentType deploymentType) {
this.deploymentType = deploymentType;
return this;
}



public Deployment build() {
Expand Down
5 changes: 5 additions & 0 deletions src/main/java/se/attini/domain/DeploymentType.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
package se.attini.domain;

public enum DeploymentType {
PLATFORM, APP
}

0 comments on commit 9589088

Please sign in to comment.