Skip to content

Commit

Permalink
[RFC72] Spring Boot Upgrade (#10425)
Browse files Browse the repository at this point in the history
RFC72
- Removal of core module
- Squashing of all modules into a single module
- Update of Java Version
- Update of Libraries
- Simplification development and deployment
  • Loading branch information
inodb authored Dec 18, 2023
1 parent 227ff81 commit 4c3e035
Show file tree
Hide file tree
Showing 2,707 changed files with 34,108 additions and 308,190 deletions.
19 changes: 7 additions & 12 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ version: 2
jobs:
build_backend:
docker:
- image: maven:3-openjdk-11
- image: maven:3-eclipse-temurin-21
working_directory: /tmp/repos/cbioportal
steps:
- checkout
Expand All @@ -18,10 +18,10 @@ jobs:
- v1-mvn-dependencies-{{ checksum "poms_combined" }}
- v1-mvn-dependencies-
- run:
name: Build and unzip war
name: Build and unzip jar
command: |
mvn -DskipTests clean install && \
unzip portal/target/cbioportal*.war -d portal/target/war-exploded
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties && \
mvn -DskipTests clean package
- save_cache:
paths:
- ~/.m2
Expand All @@ -39,12 +39,12 @@ jobs:
- run:
name: Pull frontend code
command: |
export FRONTEND_VERSION=$(grep 'frontend\.version' pom.xml | sed 's/<frontend\.version>//g' | sed 's|</frontend\.version>||' | tr -d '[:blank:]') && \
export FRONTEND_VERSION=$(grep '<frontend\.version>' pom.xml | sed 's/<frontend\.version>//g' | sed 's|</frontend\.version>||' | tr -d '[:blank:]') && \
export FRONTEND_ORG=$(grep 'frontend\.groupId' pom.xml | sed 's/<frontend\.groupId>//g' | sed 's|</frontend\.groupId>||' | tr -d '[:blank:]' | cut -d. -f3) && \
git clone https://github.com/$FRONTEND_ORG/cbioportal-frontend.git && \
cd cbioportal-frontend && \
git fetch --tags && \
git checkout ${FRONTEND_VERSION}
git checkout demo-rfc72
- persist_to_workspace:
root: /tmp/repos
paths:
Expand Down Expand Up @@ -145,11 +145,6 @@ jobs:
command: |
$TEST_HOME/docker_compose/setup.sh
no_output_timeout: 25m
- run:
name: Generate checksum of data that populates the test database
command: |
bash -x $TEST_HOME/runtime-config/db_content_fingerprint.sh | tee /tmp/db_data_md5key
no_output_timeout: 25m
- run:
name: Create MySQL data directory
command: |
Expand Down Expand Up @@ -219,7 +214,7 @@ jobs:
- store_artifacts:
path: /tmp/repos/cbioportal-frontend/end-to-end-test/local/junit/errors/
destination: /errors

environment:
PORTAL_SOURCE_DIR: /tmp/repos/cbioportal-frontend/
TEST_HOME: /tmp/repos/cbioportal-frontend/end-to-end-test/local
Expand Down
11 changes: 8 additions & 3 deletions .github/workflows/core-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,11 @@ jobs:
uses: actions/checkout@v2
with:
path: ./cbioportal
- name: 'Set up JDK 11'
uses: actions/setup-java@v1
- name: 'Set up JDK 21'
uses: oracle-actions/setup-java@v1
with:
java-version: 11
website: oracle.com
release: 21
- name: 'Cache Maven packages'
uses: actions/cache@v1
with:
Expand All @@ -40,6 +41,10 @@ jobs:
run: |
mkdir -p ~/.m2 && \
cp .github/settings.xml ~/.m2
- name: 'Create application.properties'
working-directory: ./cbioportal
run: |
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: 'Build cBioPortal once without tests'
working-directory: ./cbioportal
run: |
Expand Down
40 changes: 22 additions & 18 deletions .github/workflows/dockerimage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ jobs:
steps:
- name: Checkout git repo
uses: actions/checkout@v3

- name: 'Create application.properties'
run: |
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: Extract metadata
id: meta
uses: docker/metadata-action@v4
Expand All @@ -30,19 +32,19 @@ jobs:
type=ref,event=branch
type=semver,pattern={{version}}
# The following two actions are required to build multi-platform images
# buildx is an extension of docker build, QUEM is used to convert the binary to varies architecture
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

# The following two actions are required to build multi-platform images
# buildx is an extension of docker build, QUEM is used to convert the binary to varies architecture
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Publish Docker Image on Tag
uses: docker/build-push-action@v3
with:
Expand All @@ -60,7 +62,9 @@ jobs:
steps:
- name: Checkout git repo
uses: actions/checkout@v3

- name: 'Create application.properties'
run: |
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: Extract metadata
id: meta
uses: docker/metadata-action@v4
Expand All @@ -75,19 +79,19 @@ jobs:
type=ref,event=branch
type=semver,pattern={{version}}
# The following two actions are required to build multi-platform images
# buildx is an extension of docker build, QUEM is used to convert the binary to varies architecture
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: Login to DockerHub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}

# The following two actions are required to build multi-platform images
# buildx is an extension of docker build, QUEM is used to convert the binary to varies architecture
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Publish Docker Image on Tag
uses: docker/build-push-action@v3
with:
Expand Down
43 changes: 30 additions & 13 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,21 @@ jobs:
sudo apt-get install python3-setuptools && \
pip3 install -U wheel && \
pip3 install -r ./requirements.txt
- name: 'Set up JDK 11'
uses: actions/setup-java@v1
- name: 'Set up JDK 21'
uses: oracle-actions/setup-java@v1
with:
java-version: 11
website: oracle.com
release: 21
- name: 'Cache Maven packages'
uses: actions/cache@v1
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: 'Copy application.properties'
working-directory: ./cbioportal
run: |
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: 'Build cbioportal'
working-directory: ./cbioportal
run: |
Expand All @@ -37,21 +42,30 @@ jobs:
uses: actions/checkout@master
with:
repository: cbioportal/cbioportal-docker-compose
ref: demo-rfc72
path: ./cbioportal-docker-compose
- name: 'Initialize cbioportal-docker-compose'
working-directory: ./cbioportal-docker-compose
run: |
cd ./data && ./init.sh && rm -rf ./studies/* && cd ../config && \
cat $PORTAL_SOURCE_DIR/portal/target/classes/portal.properties | \
sed 's|db.host=.*||' | \
sed 's|db.portal_db_name=.*||' | \
sed 's|db.use_ssl=.*||' | \
sed 's|db.connection_string=.*|db.connection_string=jdbc:mysql://cbioportal-database:3306/cbioportal?useSSL=false\&allowPublicKeyRetrieval=true|' \
> portal.properties && more portal.properties
cat $PORTAL_SOURCE_DIR/src/main/resources/application.properties | \
sed 's|spring.datasource.url=.*|spring.datasource.url=jdbc:mysql://cbioportal-database:3306/cbioportal?useSSL=false|' | \
sed 's|spring.datasource.username=.*|spring.datasource.username=cbio_user|' | \
sed 's|spring.datasource.password=.*|spring.datasource.password=somepassword|' \
> application.properties && \
echo "db.user=cbio_user" >> application.properties && \
echo "db.password=somepassword" >> application.properties && \
echo "db.connection_string=jdbc:mysql://cbioportal-database:3306/cbioportal?useSSL=false" >> application.properties && \
echo "db.driver=com.mysql.jdbc.Driver" >> application.properties
- name: 'Copy cgds.sql file into Docker Compose'
run: cp ./cbioportal/src/main/resources/db-scripts/cgds.sql ./cbioportal-docker-compose/data/.
- name: 'Dump Properties'
working-directory: ./cbioportal-docker-compose
run: cat config/application.properties
- name: 'Start cbioportal-docker-compose'
working-directory: ./cbioportal-docker-compose
run: |
docker-compose -f docker-compose.yml -f $PORTAL_SOURCE_DIR/test/integration/docker-compose-localbuild.yml up -d
export DOCKER_IMAGE_CBIOPORTAL=cbioportal/cbioportal:demo-rfc72-squash && docker-compose -f docker-compose.yml -f $PORTAL_SOURCE_DIR/test/integration/docker-compose-localbuild.yml up -d
- name: 'Wait for cbioportal to initialize ...'
id: startup
uses: nev7n/wait_for_response@v1
Expand All @@ -60,17 +74,20 @@ jobs:
responseCode: 200
timeout: 900000
interval: 30000
- name: Log cBioPortal Service
if: ${{ failure() && steps.startup.conclusion == 'failure' }}
working-directory: ./cbioportal-docker-compose
run: docker-compose logs cbioportal
- name: 'TEST - Validate and load study_es_0'
if: steps.startup.conclusion == 'success'
working-directory: ./cbioportal-docker-compose
run: |
$PORTAL_SOURCE_DIR/test/integration/test_load_study.sh
- name: 'TEST - Add OncoKB annotations to study'
if: steps.startup.conclusion == 'success'
working-directory: ./cbioportal
working-directory: ./cbioportal-docker-compose
run: |
export PYTHONPATH=$PORTAL_SOURCE_DIR/core/src/main/scripts && \
$PORTAL_SOURCE_DIR/test/integration/integration_test_oncokb_import.sh
$PORTAL_SOURCE_DIR/test/integration/test_integration_test_oncokb_import.sh
- name: 'TEST - Update OncoKB annotations'
if: steps.startup.conclusion == 'success'
working-directory: ./cbioportal-docker-compose
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/sonarcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ jobs:
- uses: actions/checkout@v2
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
- name: Set up JDK 11
- name: Set up JDK 21
uses: actions/setup-java@v1
with:
java-version: 11
java-version: 21
- name: Cache SonarCloud packages
uses: actions/cache@v1
with:
Expand All @@ -29,6 +29,9 @@ jobs:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: 'Create application.properties'
run: |
cp src/main/resources/application.properties.EXAMPLE src/main/resources/application.properties
- name: Build and analyze
env:
SONAR_TOKEN: de1b5cc660cd210dde840f492c371da6cc801763
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/validate-data.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,18 @@ jobs:
uses: actions/checkout@v2
with:
path: ./cbioportal
- name: 'Checkout core module'
uses: actions/checkout@v4
with:
path: ./cbioportal/core
repository: cBioPortal/cbioportal-core
- name: 'Validate tests'
working-directory: ./cbioportal
run: |
docker run -v ${PWD}:/cbioportal python:3.6 /bin/sh -c '
cd /cbioportal &&
pip install -r requirements.txt &&
export PYTHONPATH=/cbioportal/core/src/main/scripts &&
export PYTHONPATH=/cbioportal/core/src/main/resources/scripts &&
cd /cbioportal/core/src/test/scripts/ &&
python unit_tests_validate_data.py &&
python system_tests_validate_data.py &&
Expand Down
44 changes: 23 additions & 21 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,21 @@
liftover/target/*
target/
portal/target/*
core/target/*
annotator/target/*
importer/target/*
business/target/*
model/target/*
scripts/target
persistence/persistence-api/target/*
persistence/persistence-mybatis/target/*
persistence/persistence-mybatis-test/target/*
service/target/*
mutation-assessor/target/*
cbioportal-client/target/*
mondrian-cy3-app/target/*
utils/target/*
web/target/*
nb-configuration.xml
nbactions-private.xml
oncotator/src/main/resources/db.properties
Expand Down Expand Up @@ -55,6 +73,7 @@ portal/src/main/webapp/WEB-INF/logback.xml
!src/main/resource/*.EXAMPLE
firehose-importer/reference_data/gene_info
portal.properties
application.properties
importer.properties
log4j.properties
build.properties
Expand All @@ -64,21 +83,6 @@ syntax: glob
*.swp
importer/*.log
firehose-importer/*.txt
portal/target/*
liftover/target/*
core/target/*
annotator/target/*
importer/target/*
business/target/*
model/target/*
persistence/persistence-api/target/*
persistence/persistence-mybatis/target/*
persistence/persistence-mybatis-test/target/*
service/target/*
web/target/*
mutation-assessor/target/*
cbioportal-client/target/*
mondrian-cy3-app/target/*
nbactions.xml
*/*.iml
*.iml
Expand All @@ -93,18 +97,16 @@ dependency-reduced-pom.xml
/core/nbactions-private.xml
.profile.d/
Procfile
scripts/target
node_modules/
target/
portal/META-INF/*
portal/reactapp/*
package.json
.vscode/
*.tramp_history
pom.version.*
pom.xml.*
db-scripts/src/main/resources/cgds-test.sql
pom.xml.*
Dockerfile.local
.factorypath
.retype
.retype
security.properties
*.crt
*.key
Loading

0 comments on commit 4c3e035

Please sign in to comment.