Merge branch 'master' into SP/2.1.N

* master: (21 commits)
  Bump dependency.jackson.version from 2.10.1 to 2.10.2 (#166)
  Bump commons-codec from 1.13 to 1.14 (#165)
  Bump dependency.pdfbox.version from 2.0.17 to 2.0.18 (#163)
  Bump dependency.cxf.version from 3.3.4 to 3.3.5 (#171)
  Bump docker-maven-plugin from 0.31.0 to 0.32.0
  Bump spring-boot-starter-parent from 2.2.2.RELEASE to 2.2.3.RELEASE
  Bump guava from 28.1-jre to 28.2-jre
  ATS-636 : Security: DEPLOY-904 - Update Dockerfiles (ATS & AI-CE) to new Java Base Image (Open JDK 11.0.1)
  Bump spring-boot-starter-parent from 2.2.1.RELEASE to 2.2.2.RELEASE
  Bump spring-boot-starter-parent from 2.1.8.RELEASE to 2.2.1.RELEASE (#155)
  ATS-627 : Security: DEPLOY-886 - Update Dockerfiles (ATS & AI-CE) to new Java Base Image (Open JDK 11.0.1) (#158)
  ATS-628: Update release process
  Bump dependency.jackson.version from 2.10.0 to 2.10.1 (#156)
  Bump dependency.poi.version from 4.0.1 to 4.1.1 (#145)
  Bump bcmail-jdk15on from 1.63 to 1.64 (#141)
  Bump bcprov-jdk15on from 1.63 to 1.64 (#140)
  Bump fabric8-maven-plugin from 4.2.0 to 4.3.1 (#144)
  Bump dependency.cxf.version from 3.3.3 to 3.3.4 (#147)
  Bump maven-jar-plugin from 3.1.2 to 3.2.0 (#154)
  ATS-584: Update projects to min source version (Java8 to Java 11) (#153)
  ...
This commit is contained in:
Jan Vonka
2020-01-20 12:54:47 +00:00
12 changed files with 82 additions and 113 deletions

View File

@@ -19,8 +19,7 @@ branches:
only:
- master
- /^SP\/.+$/
- release
- /^release\/SP\/.+$/
- /^HF\/.+$/
- company_release
- /^ATS-.*$/
@@ -31,7 +30,7 @@ stages:
jobs:
include:
- name: "Build"
- name: "Build + Tests"
stage: build
if: branch NOT IN (company_release)
before_install: bash _ci/init.sh
@@ -46,7 +45,7 @@ jobs:
- name: "Release"
stage: release
if: branch = release OR branch =~ /^release\/SP\/.+$/
if: commit_message ~= /\[trigger release\]/ AND branch ~= /^(master|SP\/.+|HF\/.+)$/
before_install: bash _ci/init.sh
before_script: travis_wait bash _ci/cache_artifacts.sh
script: travis_wait 30 bash _ci/release.sh

View File

@@ -2,7 +2,7 @@
# alfresco-pdf-renderer uses the PDFium library from Google Inc. See the license at https://pdfium.googlesource.com/pdfium/+/master/LICENSE or in /pdfium.txt.
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-4c75291884e5
ENV ALFRESCO_PDF_RENDERER_LIB_RPM_URL=https://nexus.alfresco.com/nexus/service/local/repositories/releases/content/org/alfresco/alfresco-pdf-renderer/1.1/alfresco-pdf-renderer-1.1-linux.tgz
ENV PDFIUM_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/pdfium.txt

View File

@@ -2,7 +2,7 @@
# ImageMagick is from ImageMagick Studio LLC. See the license at http://www.imagemagick.org/script/license.php or in /ImageMagick-license.txt.
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-4c75291884e5
ARG IMAGEMAGICK_VERSION=7.0.7-27

View File

@@ -2,7 +2,7 @@
# LibreOffice is from The Document Foundation. See the license at https://www.libreoffice.org/download/license/ or in /libreoffice.txt.
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-4c75291884e5
ARG LIBREOFFICE_VERSION=6.1.6

View File

@@ -2,7 +2,7 @@
# Tika is from Apache. See the license at http://www.apache.org/licenses/LICENSE-2.0.
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-4c75291884e5
ENV APACHE_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/Apache%202.0.txt
ENV JAVA_OPTS=""

View File

@@ -86,12 +86,12 @@
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk15on</artifactId>
<version>1.63</version>
<version>1.64</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcmail-jdk15on</artifactId>
<version>1.63</version>
<version>1.64</version>
</dependency>
<!-- Apache POI -->

View File

@@ -1,6 +1,6 @@
# Image provides a container in which to run miscellaneous transformations for Alfresco Content Services.
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-6784d76a7b81
FROM alfresco/alfresco-base-java:11.0.1-openjdk-centos-7-4c75291884e5
ENV APACHE_LICENSE_FILE=https://github.com/Alfresco/acs-community-packaging/blob/master/distribution/src/main/resources/licenses/3rd-party/Apache%202.0.txt
ENV JAVA_OPTS=""

View File

@@ -70,7 +70,7 @@
<dependency>
<groupId>org.apache.pdfbox</groupId>
<artifactId>pdfbox-tools</artifactId>
<version>2.0.17</version>
<version>2.0.18</version>
</dependency>
<!-- OOXMLThumbnailContentTransformer -->

View File

@@ -72,7 +72,7 @@
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<version>3.2.0</version>
<executions>
<execution>
<goals>

View File

@@ -35,7 +35,6 @@ import static org.springframework.http.HttpHeaders.CONTENT_TYPE;
import static org.springframework.http.HttpStatus.BAD_REQUEST;
import static org.springframework.http.HttpStatus.INTERNAL_SERVER_ERROR;
import static org.springframework.http.HttpStatus.OK;
import static org.springframework.http.MediaType.APPLICATION_JSON_UTF8_VALUE;
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.header;
@@ -352,7 +351,7 @@ public abstract class AbstractTransformerControllerTest
String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config"))
.andExpect(status().is(OK.value()))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_UTF8_VALUE))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_VALUE))
.andReturn().getResponse().getContentAsString();
TransformConfig transformConfig = objectMapper.readValue(response, TransformConfig.class);
@@ -371,7 +370,7 @@ public abstract class AbstractTransformerControllerTest
String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config"))
.andExpect(status().is(OK.value()))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_UTF8_VALUE))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_VALUE))
.andReturn().getResponse().getContentAsString();
TransformConfig transformConfig = objectMapper.readValue(response, TransformConfig.class);
@@ -398,7 +397,7 @@ public abstract class AbstractTransformerControllerTest
String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config"))
.andExpect(status().is(OK.value()))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_UTF8_VALUE))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_VALUE))
.andReturn().getResponse().getContentAsString();
TransformConfig transformConfig = objectMapper.readValue(response, TransformConfig.class);
@@ -421,7 +420,7 @@ public abstract class AbstractTransformerControllerTest
String response = mockMvc
.perform(MockMvcRequestBuilders.get("/transform/config"))
.andExpect(status().is(OK.value()))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_UTF8_VALUE))
.andExpect(header().string(CONTENT_TYPE, APPLICATION_JSON_VALUE))
.andReturn().getResponse().getContentAsString();
TransformConfig transformConfig = objectMapper.readValue(response, TransformConfig.class);

View File

@@ -4,36 +4,29 @@ The `.travis.yml` config file can be found in the root of the repository.
## Stages and Jobs
1. **Build**: Java Build with Unit and Integration Tests, WhiteSource
2. **Release**: Publish to Quay & DockerHub, Publish the S3 staging
3. **Company Release**: Publish to S3 release
1. **Build**: Java build with unit tests, integration tests and WhiteSource scan.
2. **Release**: Release with artifact deployment to Nexus and AWS Staging bucket.
3. **Company Release**: Artifact deployment to AWS Release bucket.
## Branches
Travis CI builds differ by branch:
* `master`:
- regular builds which include only the _Build_ stage;
- the _Build_ stage updates the `latest` T-Engines images (only
from the `master` branch) on both Quay and DockerHub:
- alfresco/alfresco-pdf-renderer
- alfresco/alfresco-imagemagick
- alfresco/alfresco-tika
- alfresco/alfresco-libreoffice
* `ATS-*` (any branch starting with "ATS-"), `SP/1.3.N` and `SP/2.0.N`:
- regular builds which include only the _Build_ stage;
- although built and used on the CI agent, no docker images are updated on remote repositories;
* `release`:
- builds that include the _Build_ and _Release_ stages;
- PR builds with release as the target branch only execute dry runs of the actual release,
without actually publishing anything;
* `release/SP/1.3.N` and `release/SP/2.0.N`:
- builds that include the _Build_ and _Release_ stages;
- PR builds with one of the release branches as the target branch only execute dry runs of the actual release,
without actually publishing anything;
- the branches should be deleted once the builds are completed
* `company_release`:
- builds that include only the `company_release` stage;
* `master` / `SP/*` / `HF/*` branches:
- regular builds which include the _Build_ stage;
> On the `master` branch only the _Build_ stage updates the `latest` T-Engines images on
> both Quay and DockerHub:
> - alfresco/alfresco-pdf-renderer
> - alfresco/alfresco-imagemagick
> - alfresco/alfresco-tika
> - alfresco/alfresco-libreoffice
- if the commit message contains the `[trigger release]` tag, the builds will also
include the _Release_ stage;
- PR builds where the latest commit contains the `[trigger release]` tag will execute dry runs
of the release jobs (no artifacts will be published until the PR is actually merged).
* `ATS-*` branches:
- regular builds which include only the _Build_ and _Tests_ stages;
* `company_release` branch:
- builds that include the _Company Release_ stage only.
- the `company_release` branch should be used for one-off events; once used (a build
completes), the branch should be deleted.
@@ -42,65 +35,43 @@ All other branches are ignored.
## Release process steps & info
Prerequisites:
- the `master` branch has a green build and it contains all the changes that should be included in
the next release
- the `master` / `SP/*` / `HF/*` branch is green and it contains all the changes that should be
included in the next release.
Steps:
1. Create a new branch from the `master` branch with the name `ATS-###_release_version`;
2. (Optional) Update the project version if the current POM version is not the next desired
release; use a maven command, i.e. `mvn versions:set -DnewVersion=2.0.19-SNAPSHOT versions:commit`;
3. Update the project's dependencies (remove the `-SNAPSHOT` suffixes) through a new commit on the
`ATS-###_release_version` branch;
4. Open a new Pull Request from the `ATS-###_release_version` branch into the `release` branch and
wait for a green build; the **Release** stage on the PR build will only execute a _Dry_Run_ of
the release;
5. Once it is approved, merge the PR through the **Create a merge commit** option (as opposed to
_Squash and merge_ or _Rebase and merge_), delete the `ATS-###_release_version` branch, and wait
for a green build on the `release` branch;
6. Merge back the `release` branch into the `master` branch;
7. Update the project dependencies (append the `-SNAPSHOT` suffixes)
1. Create a new branch with the name `ATS-###_release_version` from the `master` / `SP/*`/ `HF/*`
branch.
2. Update the project version if the current POM version is not the next desired release; use a
maven command, i.e.
```bash
mvn versions:set -DnewVersion=#.##.#-SNAPSHOT versions:commit
```
3. Update the project's dependencies (remove the `-SNAPSHOT` suffixes - only for dependencies, not
for the local project version).
4. Create a new commit with the `[trigger release]` tag in its message. If no local changes have
been generated by steps (2) and (3), then an empty commit should be created - e.g.
```bash
git commit --allow-empty -m "ATS-###: Release AIS #.##.# [trigger release]"
```
> The location of the `[trigger release]` tag in the commit message is irrelevant.
Steps (6) and (7) can be done either directly from an IDE or through the GitHub flow, by creating
another branch and PR. Just make sure you don't add extra commits directly to the release branch,
as this will trigger another release.
After the release, the reference deployments (docker-compose, helm) should be updated with the
latest docker image tags.
### Release of a Service Pack (SP/1.3.N or SP/2.0.N)
Prerequisites:
- the `SP/<version>` (<version> could be 1.3.N or 2.0.N) branch has a green build and it contains all the changes that should be included in
the next release
**NOTE**: Make sure you release the proper version and the `SP/<version>` is merged into the correct `release/SP/<version>` (both having the same version).
E.g. When releasing a 1.3.N Service Pack, a new branch (`ATS-###_release_version`) should be created from `SP/1.3.N` and the PR should target the `release/SP/1.3.N` branch.
Steps (similar to those describing the release from `master`):
1. Create a new branch from the `SP/<version>` (SP/1.3.N or SP/2.0.N) branch with the name `ATS-###_release_version`;
2. (Optional) Update the project version if the current POM version is not the next desired
release; use a maven command, i.e. `mvn versions:set -DnewVersion=1.3.1-SNAPSHOT versions:commit`;
3. Update the project's dependencies (remove the `-SNAPSHOT` suffixes) through a new commit on the
`ATS-###_release_version` branch;
4. Open a new Pull Request from the `ATS-###_release_version` branch into the `release/SP/<version>` branch and
wait for a green build; the **Release** stage on the PR build will only execute a _Dry_Run_ of
the release;
5. Once it is approved, merge the PR through the **Create a merge commit** option (as opposed to
_Squash and merge_ or _Rebase and merge_), delete the `ATS-###_release_version` branch, and wait
for a green build on the `release` branch;
6. Merge back the `release/SP/<version>` branch into the `SP/<version>` branch;
7. Update the project dependencies (append the `-SNAPSHOT` suffixes)
> If for any reason your PR contains multiple commits, the commit with the `[trigger release]`
tag should be the last (newest) one. This will trigger the Release dry runs.
5. Open a new Pull Request from the `ATS-###_release_version` branch into the original
`master` / `SP/*` / `HF/*` branch and wait for a green build; the **Release** stage on the PR build
will only execute a _Dry_Run_ of the release.
6. Once it is approved, merge the PR, preferably through the **Rebase and merge** option. If the
**Create a merge commit** (_Merge pull request_) or **Squash and merge** options are used, you
need to ensure that the _commit message_ contains the `[trigger release]` tag (sub-string).
## Company Release process steps & info
Prerequisites:
- Engineering Release of the desired version has been done.
Steps:
1. Create a new `company_release` branch from `release`. This job uses the git tag to identify the
version to be uploaded to S3 release bucket.
2. If the last commit on `company_release` branch contains `[skip_ci]` in its message it will
prevent Travis from starting a build. Push an empty commit in order to trigger the build,
`git commit --allow-empty -m "Company Release <version>"`. Wait for a green build on the branch.
3. Delete local and remote `company_release` branch.
- The **Release** stage is complete - i.e. the release commit is tagged and the release
artifacts are deployed on Nexus.
### Release of a Service Pack (SP/1.3.N or SP/2.0.N)
Follow the steps described in the previous section, but instead of creating the `company_release` from `release`, it needs to be created from the proper `release/SP/<version>` (depending on what version needs the Company Release).
Steps:
1. Create a new `company_release` branch from the `master` / `SP/*`/ `HF/*` branch. This job uses
the latest branch git tag to identify the version that must be uploaded to the S3 release bucket.
2. Wait for a green build on the branch.
3. Delete local and remote `company_release` branch.

28
pom.xml
View File

@@ -5,7 +5,7 @@
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.8.RELEASE</version>
<version>2.2.3.RELEASE</version>
<relativePath />
</parent>
@@ -15,19 +15,19 @@
<packaging>pom</packaging>
<properties>
<java.version>1.8</java.version>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<java.version>11</java.version>
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
<image.tag>latest</image.tag>
<dependency.pdfbox.version>2.0.17</dependency.pdfbox.version>
<dependency.pdfbox.version>2.0.18</dependency.pdfbox.version>
<dependency.alfresco-jodconverter-core.version>3.0.1.1</dependency.alfresco-jodconverter-core.version>
<env.project_version>${project.version}</env.project_version>
<dependency.alfresco-transform-model.version>1.0.2.7</dependency.alfresco-transform-model.version>
<dependency.activemq.version>5.15.9</dependency.activemq.version>
<dependency.jackson.version>2.10.0</dependency.jackson.version>
<dependency.cxf.version>3.3.3</dependency.cxf.version>
<dependency.poi.version>4.0.1</dependency.poi.version>
<dependency.jackson.version>2.10.2</dependency.jackson.version>
<dependency.cxf.version>3.3.5</dependency.cxf.version>
<dependency.poi.version>4.1.1</dependency.poi.version>
</properties>
<modules>
@@ -43,7 +43,7 @@
<connection>scm:git:https://github.com/Alfresco/alfresco-transform-core.git</connection>
<developerConnection>scm:git:https://github.com/Alfresco/alfresco-transform-core.git</developerConnection>
<url>https://github.com/Alfresco/alfresco-transform-core</url>
<tag>2.1.0</tag>
<tag>HEAD</tag>
</scm>
<dependencyManagement>
@@ -140,7 +140,7 @@
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
<version>28.2-jre</version>
</dependency>
<!-- Junrar & compression -->
<dependency>
@@ -163,7 +163,7 @@
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.13</version>
<version>1.14</version>
</dependency>
</dependencies>
</dependencyManagement>
@@ -292,19 +292,19 @@
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>fabric8-maven-plugin</artifactId>
<version>4.2.0</version>
<version>4.3.1</version>
</plugin>
<plugin>
<groupId>io.fabric8</groupId>
<artifactId>docker-maven-plugin</artifactId>
<version>0.31.0</version>
<version>0.32.0</version>
<extensions>true</extensions>
<executions>
<execution>
<id>before-integration-tests</id>
<phase>pre-integration-test</phase>
<goals>
<!--<goal>stop</goal>-->
<goal>stop</goal>
<goal>start</goal>
</goals>
</execution>