Skip to content

Commit

Permalink
Maven multi module (#400)
Browse files Browse the repository at this point in the history
* Maven multi module #359

Two modules: mirror-importer and mirror-api-rest
Updated docs
Update CircleCI
Update deploy script and service name

Tested:
1. ./mvnw package
2. BUCKET=hedera-mainnet-streams docker-compose updocker-compose down

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* update path in rest api integration test

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* address review comments

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* address review comments

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* circleci artifacts

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* address review comments

Signed-off-by: Apekshit Sharma <apekshit.sharma@hedera.com>

* Prefix modules with hedera-

Signed-off-by: Steven Sheehy <steven.sheehy@hedera.com>
  • Loading branch information
apeksharma authored and steven-sheehy committed Nov 26, 2019
1 parent 55fafb1 commit 494d08a
Show file tree
Hide file tree
Showing 253 changed files with 693 additions and 580 deletions.
92 changes: 46 additions & 46 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
@@ -1,48 +1,39 @@
version: 2

references:
workspace_root: &workspace_root
/tmp/workspace
workspace_root: &workspace_root /tmp/workspace
attach_workspace: &attach_workspace
attach_workspace:
at: *workspace_root
package_mirror_node: &package_mirror_node
run:
name: Generating mirror-node.tgz
working_directory: /tmp/workspace/
command: |
_tagged_dir=mirror-node-${CIRCLE_TAG:-b$CIRCLE_BUILD_NUM}
mv mirror-node "${_tagged_dir}"
tar -czf /tmp/workspace/mirror-node.tgz "${_tagged_dir}"

workflows:
version: 2
main:
jobs:
- build_mirror_node:
- build_maven:
filters: # required since `release_artifacts` has tag filters AND requires `this`
branches:
only: /.*/
tags:
only: /.*/
- build_rest_api:
- build_rest:
filters: # required since `release_artifacts` has tag filters AND requires `this`
branches:
only: /.*/
tags:
only: /.*/
- release_artifacts:
requires:
- build_mirror_node
- build_rest_api
- build_maven
- build_rest
filters:
branches:
ignore: /.*/
tags:
only: /^v.*/

jobs:
build_mirror_node:
build_maven:
docker:
- image: adoptopenjdk:11-jdk-hotspot
- image: postgres:9.6-alpine
Expand All @@ -52,35 +43,46 @@ jobs:
POSTGRES_USER: mirror_node
steps:
- checkout
- run:
name: Calculate checksum of all pom.xml
command: find . -type f -name "pom.xml" | sort -u | xargs sha512sum > pom.xml.checksum
- restore_cache:
keys:
- maven-v1-{{ .Branch }}-{{ checksum "pom.xml" }}
- maven-v1-{{ .Branch }}
- maven-v1-
- maven-v2-{{ .Branch }}-{{ checksum "pom.xml.checksum" }}
- maven-v2-{{ .Branch }}
- maven-v2-
- run:
name: Running maven (validate, compile, test, package)
command: ./mvnw package
name: Resolve dependencies
# See https://issues.apache.org/jira/browse/MDEP-516 for why we don't use maven-dependency-plugin
command: ./mvnw de.qaware.maven:go-offline-maven-plugin:resolve-dependencies
- save_cache:
key: maven-v1-{{ .Branch }}-{{ checksum "pom.xml" }}
key: maven-v2-{{ .Branch }}-{{ checksum "pom.xml.checksum" }}
paths:
- ~/.m2
- ~/.m2
- run:
name: Running maven (validate, compile, test, package)
command: ./mvnw package
- store_test_results:
path: target/surefire-reports
path: hedera-mirror-importer/target/surefire-reports
- run:
name: Upload Code Coverage
command: bash <(curl -s https://codecov.io/bash)
- run:
name: Collecting mirror-node assets
name: Collecting assets
command: |
mkdir -p /tmp/workspace/mirror-node/
mv target/mirror-node-*.jar /tmp/workspace/mirror-node/mirror-node.jar
mv scripts /tmp/workspace/mirror-node/
NAME=hedera-mirror-importer-${CIRCLE_TAG:-b$CIRCLE_BUILD_NUM}
WORKSPACE=/tmp/workspace
mkdir -p ${WORKSPACE}/${NAME}
mv hedera-mirror-importer/target/hedera-mirror-importer-*.jar ${WORKSPACE}/${NAME}
mv hedera-mirror-importer/scripts ${WORKSPACE}/${NAME}
mkdir -p ${WORKSPACE}/artifacts
tar -czf ${WORKSPACE}/artifacts/${NAME}.tgz -C ${WORKSPACE} ${NAME}
- persist_to_workspace:
root: *workspace_root
paths:
- mirror-node
- artifacts

build_rest_api:
build_rest:
docker:
- image: node:12.10.0
- image: circleci/postgres:9.6.14
Expand All @@ -92,47 +94,45 @@ jobs:
- checkout:
- restore_cache:
keys:
- npm-v1-{{ .Branch }}-{{ checksum "rest-api/package-lock.json" }}
- npm-v1-{{ .Branch }}-{{ checksum "hedera-mirror-rest/package-lock.json" }}
- npm-v1-{{ .Branch }}
- npm-v1-
- run:
working_directory: 'rest-api'
name: Run npm ci (ensure node_modules is based on package-lock.json).
working_directory: "hedera-mirror-rest"
name: Resolve dependencies
command: npm ci
- save_cache:
key: npm-v1-{{ .Branch }}-{{ checksum "rest-api/package-lock.json" }}
key: npm-v1-{{ .Branch }}-{{ checksum "hedera-mirror-rest/package-lock.json" }}
paths:
- node_modules
- .node-flywaydb
- ~/.npm
- run:
working_directory: 'rest-api'
working_directory: "hedera-mirror-rest"
name: Run npm test
command: npm test
environment:
TEST_DB_HOST: '127.0.0.1'
TEST_DB_NAME: 'mirror_node_integration'
TEST_DB_HOST: "127.0.0.1"
TEST_DB_NAME: "mirror_node_integration"
- store_test_results:
path: rest-api/target/jest-junit
path: hedera-mirror-rest/target/jest-junit
- run:
working_directory: 'rest-api'
name: Collecting rest-api assets
working_directory: "hedera-mirror-rest"
name: Collecting assets
command: |
NAME=hedera-mirror-rest-${CIRCLE_TAG:-b$CIRCLE_BUILD_NUM}
npm pack
mkdir -p /tmp/workspace/
mv rest-api*.tgz /tmp/workspace/rest-api.tgz
mkdir -p /tmp/workspace/artifacts
mv hedera-mirror-rest*.tgz /tmp/workspace/artifacts/${NAME}.tgz
- persist_to_workspace:
root: *workspace_root
paths:
- rest-api.tgz
- artifacts

release_artifacts:
docker:
- image: adoptopenjdk:11-jdk-hotspot
steps:
- *attach_workspace
- *package_mirror_node
- store_artifacts:
path: /tmp/workspace/mirror-node.tgz
- store_artifacts:
path: /tmp/workspace/rest-api.tgz
path: /tmp/workspace/artifacts
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -24,9 +24,10 @@

# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
/target/
target/
.project
/data/
hedera-mirror-importer/data/
.classpath
output/
/db/
Expand Down
20 changes: 10 additions & 10 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
version: '3.3'
version: "3.3"
services:
mirror-node-postgres:
db:
image: postgres:9.6-alpine
restart: unless-stopped
stop_grace_period: 2m
Expand All @@ -15,20 +15,20 @@ services:
ports:
- 5432:5432

mirror-node-backend:
image: hederahashgraph/mirror-node
importer:
image: docker.pkg.github.com/hashgraph/hedera-mirror-node/hedera-mirror-importer
restart: unless-stopped
environment:
HEDERA_MIRROR_DATAPATH: /var/lib/mirror-node
HEDERA_MIRROR_DB_HOST: mirror-node-postgres
HEDERA_MIRROR_DATAPATH: /var/lib/hedera-mirror-importer
HEDERA_MIRROR_DB_HOST: db
HEDERA_MIRROR_DOWNLOADER_BUCKETNAME: ${BUCKET_NAME}
volumes:
- ./data:/var/lib/mirror-node
- ./data:/var/lib/hedera-mirror-importer

mirror-node-api:
image: hederahashgraph/mirror-node-api
rest:
image: docker.pkg.github.com/hashgraph/hedera-mirror-node/hedera-mirror-rest
environment:
HEDERA_MIRROR_DB_HOST: mirror-node-postgres
HEDERA_MIRROR_DB_HOST: db
restart: unless-stopped
tty: true
ports:
Expand Down
Loading

0 comments on commit 494d08a

Please sign in to comment.