Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Joel Weiser committed May 2, 2024
2 parents 9f35175 + 3dfe298 commit cb75687
Show file tree
Hide file tree
Showing 6 changed files with 192 additions and 9 deletions.
9 changes: 9 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.git
.github

.dockerignore
.gitignore
Dockerfile
Jenkinsfile
OrthoinferenceOverview.png
README.md
92 changes: 92 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
name: release-orthoinference ci

on:
workflow_dispatch:
pull_request:
types:
- opened
- synchronize
push:
branches:
- main

permissions:
id-token: write
contents: read

jobs:
lint:
if: ${{ github.event_name == 'pull_request' || github.event_name == 'workflow_dispatch' }}
runs-on: ubuntu-latest
env:
REPO_DIR : /opt/release-orthoinference
steps:
- uses: actions/checkout@v4

- name: Run lint
run: |
docker build --build-arg REPO_DIR="$REPO_DIR" --target setup-env -t lint-image .
docker run --name lint-container lint-image
- name: Display lint errors
if: failure()
run: |
docker cp lint-container:"$REPO_DIR"/lint.log .
while IFS= read -r LINT_MSG; do echo "::warning::${LINT_MSG}"; done < lint.log
exit 1
docker-build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: docker/setup-buildx-action@v3

- uses: docker/build-push-action@v5
with:
context: .
file: Dockerfile
tags: tmp-tag
outputs: type=docker,dest=/tmp/image.tar

- uses: actions/upload-artifact@v4
with:
name: image-artifact
path: /tmp/image.tar

docker-push:
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
needs: docker-build
runs-on: ubuntu-latest
steps:
- uses: actions/download-artifact@v4
with:
name: image-artifact
path: /tmp

- id: get-hash
run: |
FULL_SHA=${{ github.sha }}
echo "SHORT_SHA=${FULL_SHA:0:7}" >> $GITHUB_OUTPUT
- env:
AWS_REGION : us-east-1
uses: aws-actions/configure-aws-credentials@v4
with:
role-to-assume: ${{ vars.AWS_ROLE }}
aws-region: ${{ env.AWS_REGION }}

- id: login-ecr
uses: aws-actions/amazon-ecr-login@v2
with:
registry-type: public

- env:
AWS_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
AWS_REGISTRY_ALIAS: k2y5k6e2
AWS_REPO: release-orthoinference
IMG_TAG: ${{ steps.get-hash.outputs.SHORT_SHA }}
run: |
docker load --input /tmp/image.tar
docker image tag tmp-tag $AWS_REGISTRY/$AWS_REGISTRY_ALIAS/$AWS_REPO:$IMG_TAG
docker push $AWS_REGISTRY/$AWS_REGISTRY_ALIAS/$AWS_REPO:$IMG_TAG
39 changes: 39 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
ARG REPO_DIR=/opt/release-orthoinference


# ===== stage 1 =====
FROM maven:3.9.6-eclipse-temurin-11-focal AS setup-env

ARG REPO_DIR

WORKDIR ${REPO_DIR}

COPY . .

SHELL ["/bin/bash", "-c"]

# run lint if container started
ENTRYPOINT []

CMD mvn -B -q checkstyle:check | \
grep -i --color=never '\.java\|failed to execute goal' > lint.log && \
exit 1 || \
exit 0


# ===== stage 2 =====
FROM setup-env AS build-jar

RUN mvn clean compile assembly:single


# ===== stage 3 =====
FROM eclipse-temurin:11-jre-focal

ARG REPO_DIR

ARG JAR_FILE=target/orthoinference-*-jar-with-dependencies.jar

WORKDIR ${REPO_DIR}

COPY --from=build-jar ${REPO_DIR}/${JAR_FILE} ./target/
12 changes: 6 additions & 6 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -121,16 +121,16 @@ pipeline{
utils.cloneOrUpdateLocalRepo("graph-importer")

dir("graph-importer"){
utils.buildJarFile()
utils.buildJarFileWithPackage()
// This generates the graph database.
withCredentials([usernamePassword(credentialsId: 'mySQLUsernamePassword', passwordVariable: 'pass', usernameVariable: 'user')]){
sh "java -jar target/GraphImporter-jar-with-dependencies.jar --name ${env.RELEASE_CURRENT_DB} --user $user --password $pass --neo4j /tmp/graph.db"
sh "sudo service tomcat7 stop"
sh "java -jar target/GraphImporter-exec.jar --name ${env.RELEASE_CURRENT_DB} --user $user --password $pass --neo4j /tmp/graph.db"
sh "sudo service tomcat9 stop"
sh "sudo service neo4j stop"
// This static script adjusts permissions of the graph.db folder and moves it to /var/lib/neo4j/data/databases/.
sh "sudo bash ${env.JENKINS_HOME_PATH}/changeGraphDatabase.sh"
sh "sudo service neo4j start"
sh "sudo service tomcat7 start"
sh "sudo service tomcat9 start"
sh "rm ${env.JENKINS_HOME_PATH}/changeGraphDatabase.sh"
}
}
Expand All @@ -143,9 +143,9 @@ pipeline{
script{
utils.cloneOrUpdateLocalRepo("graph-qa")
dir("graph-qa"){
utils.buildJarFile()
utils.buildJarFileWithPackage()
withCredentials([usernamePassword(credentialsId: 'neo4jUsernamePassword', passwordVariable: 'pass', usernameVariable: 'user')]){
sh "java -jar target/graph-qa-jar-with-dependencies.jar -u $user -p $pass --verbose"
sh "java -jar target/graph-qa-exec.jar -u $user -p $pass --verbose"
}
}
}
Expand Down
9 changes: 9 additions & 0 deletions checkstyle.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!DOCTYPE module PUBLIC
"-//Puppy Crawl//DTD Check Configuration 1.3//EN"
"https://checkstyle.org/dtds/configuration_1_3.dtd">
<module name="Checker">
<module name="LineLength">
<property name="max" value="150"/>
</module>
<!-- Add more modules as needed -->
</module>
40 changes: 37 additions & 3 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
<dependency>
<groupId>org.reactome.release</groupId>
<artifactId>release-common-lib</artifactId>
<version>1.2.0</version>
<version>2.0.0-SNAPSHOT</version>
</dependency>

<!-- Test dependencies -->
Expand Down Expand Up @@ -95,6 +95,13 @@
</dependency>
</dependencies>

<repositories>
<repository>
<id>ossrh</id>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
</repository>
</repositories>

<build>
<plugins>
<!-- sets the Java compiler version targeted by Maven -->
Expand All @@ -103,8 +110,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<source>11</source>
<target>11</target>
</configuration>
</plugin>

Expand Down Expand Up @@ -173,6 +180,33 @@
</execution>
</executions>
</plugin>

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<!-- This dependency allows Checkstyle to understand Java 11 syntax -->
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>8.44</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<configLocation>checkstyle.xml</configLocation>
<!-- Optional: Set encoding -->
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>

0 comments on commit cb75687

Please sign in to comment.