Skip to content

Commit

Permalink
Merge branch 'integration' into log-iterator
Browse files Browse the repository at this point in the history
  • Loading branch information
ivakegg committed Nov 4, 2024
2 parents 67eb398 + 66f1bda commit 58af31e
Show file tree
Hide file tree
Showing 308 changed files with 13,635 additions and 3,051 deletions.
8 changes: 0 additions & 8 deletions .github/CODEOWNERS

This file was deleted.

99 changes: 99 additions & 0 deletions .github/workflows/build-accumulo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Build Accumulo snapshot and update DataWave to use

on:
workflow_dispatch:
inputs:
accumuloBranch:
required: true
default: "2.1"
description: "Branch name to build. Will be used as image tag."
accumuloRepo:
required: true
default: "apache/accumulo"
description: "Accumulo Repo to use. Expected to be at Github. Example: apache/accumulo"
deployAccumulo:
required: true
default: "false"
description: "Set to false if this accumulo version has already been pushed to Github Packages"

# Defines two custom environment variables for the workflow. These are used for the Container registry domain, and a name for the Docker image that this workflow builds.
env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository.lowercase }}
ACCUMULO_JAVA_VERSION: '17'
DATAWAVE_JAVA_VERSION: '11'
JAVA_DISTRIBUTION: 'zulu' #This is the default on v1 of the action for 1.8
USER_NAME: ${{ secrets.GHCR_WRITE_USER_NAME }}
ACCESS_TOKEN: ${{ secrets.GHCR_WRITE_ACCESS_TOKEN }}

jobs:
build-and-deploy-accumulo:
runs-on: ubuntu-latest
# Sets the permissions granted to the `GITHUB_TOKEN` for the actions in this job.
permissions:
contents: read
packages: write
#
steps:
- name: Checkout DataWave
uses: actions/checkout@v4
with:
path: datawave

- name: Checkout Accumulo
uses: actions/checkout@v4
id: accumuloCheckout
with:
repository: ${{ github.event.inputs.accumuloRepo }}
path: accumulo
ref: ${{ github.event.inputs.accumuloBranch }}

- name: Set up JDK ${{env.ACCUMULO_JAVA_VERSION}}
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.ACCUMULO_JAVA_VERSION}}
cache: 'maven'
- run: echo "ACCUMULO_JAVA=$JAVA_HOME" >> $GITHUB_ENV
- name: Set up JDK ${{env.DATAWAVE_JAVA_VERSION}}
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.DATAWAVE_JAVA_VERSION}}
cache: 'maven'
- run: echo "DATAWAVE_JAVA=$JAVA_HOME" >> $GITHUB_ENV

- name: Get Accumulo Version
id: get-accumulo-version
run: |
export JAVA_HOME="$ACCUMULO_JAVA"
cd "$GITHUB_WORKSPACE/accumulo"
mvn build-helper:parse-version versions:set -DgenerateBackupPoms=false -DnewVersion=\${parsedVersion.majorVersion}.\${parsedVersion.minorVersion}.\${parsedVersion.incrementalVersion}-dwv-$(git rev-parse --short HEAD)
export newVersion=$(mvn -q help:evaluate -DforceStdout -Dexpression=project.version)
echo accumuloVersion=$newVersion >> $GITHUB_OUTPUT
- name: Deploy Accumulo
if: ${{ github.event.inputs.deployAccumulo == 'true'}}
run: |
export JAVA_HOME="$ACCUMULO_JAVA"
cd "$GITHUB_WORKSPACE/accumulo"
mvn -DaltDeploymentRepository=github-datawave::https://maven.pkg.github.com/NationalSecurityAgency/datawave -V -B -e -ntp "-Dstyle.color=always" -DskipTests -T1C clean source:jar deploy -s "$GITHUB_WORKSPACE/datawave/.github/workflows/settings.xml"
- name: Log in to the Container registry
uses: docker/login-action@65b78e6e13532edd9afa3aa52ac7964289d1a9c1
with:
registry: ${{ env.REGISTRY }}
username: ${{ env.USER_NAME }}
password: ${{ env.ACCESS_TOKEN }}

- name: Update DataWave Dependency Version
run: |
export JAVA_HOME="$DATAWAVE_JAVA"
cd "$GITHUB_WORKSPACE/datawave"
mvn -s "$GITHUB_WORKSPACE/datawave/.github/workflows/settings.xml" versions:set-property -Dproperty=version.accumulo -DnewVersion=${{ steps.get-accumulo-version.outputs.accumuloVersion }} -DgenerateBackupPoms=false
- name: Build Web and Ingest Docker Images (Maven)
run: |
export JAVA_HOME="$DATAWAVE_JAVA"
cd "$GITHUB_WORKSPACE/datawave"
mvn -s "$GITHUB_WORKSPACE/datawave/.github/workflows/settings.xml" clean install -Prpm,kubernetes,assemble,deploy-ws -Ddist -Pdocker -DpushImage -Ddocker-release -DskipTests -Ddocker.image.accumulo.tag=${{ steps.get-accumulo-version.outputs.accumuloVersion }}
4 changes: 2 additions & 2 deletions .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,9 +32,9 @@ jobs:
username: ${{ env.USER_NAME }}
password: ${{ env.ACCESS_TOKEN }}
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
Expand Down
41 changes: 41 additions & 0 deletions .github/workflows/microservice-build-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#
name: Create and publish a Docker image

on:
workflow_call:
secrets:
USER_NAME:
description: "User Name for maven pulls"
required: true
ACCESS_TOKEN:
description: "Access token for maven pulls"
required: true


jobs:
build-and-push-datawave-images:
runs-on: ubuntu-latest
steps:
- name: Log in to the Container registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ secrets.USER_NAME }}
password: ${{ secrets.ACCESS_TOKEN }}
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
distribution: "zulu"
java-version: 11
cache: 'maven'
- name: Build And Push Docker Image (Maven)
env:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Djava.awt.headless=true"
USER_NAME: ${{ secrets.USER_NAME }}
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: |
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -V -B -e clean install -Pdocker,exec -Ddocker.image.prefix=ghcr.io/nationalsecurityagency/ -DpushImage
72 changes: 72 additions & 0 deletions .github/workflows/microservice-maven-tests.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
name: Tests

on:
workflow_call:
secrets:
USER_NAME:
description: "User Name for maven pulls"
required: true
ACCESS_TOKEN:
description: "Access token for maven pulls"
required: true

env:
MAVEN_OPTS: "-Djansi.force=true -Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Djava.awt.headless=true -XX:ThreadStackSize=1m"

jobs:
# Runs the pom sorter and code formatter to ensure that the code
# is formatted and poms are sorted according to project rules. This
# will fail if the formatter makes any changes.
check-code-formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'zulu'
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-format-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-format-
${{ runner.os }}-maven-
- name: Format code
run: |
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -V -B -e clean formatter:format sortpom:sort -Pautoformat
git status
git diff-index --quiet HEAD || (echo "Error! There are modified files after formatting." && false)
env:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Djava.awt.headless=true"
USER_NAME: ${{ secrets.USER_NAME }}
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}

# Build the code and run the unit/integration tests.
build-and-test:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v4
- name: Set up JDK 11
uses: actions/setup-java@v4
with:
java-version: 11
distribution: 'zulu'
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-build-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-build-
${{ runner.os }}-maven-format-
${{ runner.os }}-maven-
- name: Build and Run Unit Tests
run: mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -V -B -e -Ddist clean verify
env:
MAVEN_OPTS: "-Dhttps.protocols=TLSv1.2 -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=WARN -Djava.awt.headless=true"
USER_NAME: ${{ secrets.USER_NAME }}
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}

41 changes: 24 additions & 17 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:
- 'integration'
- 'release/version*'
pull_request:
paths-ignore: ['*.md', 'CODEOWNERS', 'LICENSE']
paths-ignore: ['*.md', 'CODEOWNERS', 'LICENSE', '.github/workflows/microservice*.yaml']
workflow_dispatch:

env:
Expand All @@ -23,9 +23,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
Expand Down Expand Up @@ -60,9 +60,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
Expand All @@ -88,15 +88,15 @@ jobs:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# uses: actions/checkout@v4
# with:
# submodules: 'recursive'
# - name: Set up JDK ${{env.JAVA_VERSION}}
# uses: actions/setup-java@v3
# uses: actions/setup-java@v4
# with:
# distribution: ${{env.JAVA_DISTRIBUTION}}
# java-version: ${{env.JAVA_VERSION}}
# - uses: actions/cache@v3
# - uses: actions/cache@v4
# with:
# path: ~/.m2/repository
# key: ${{ runner.os }}-maven-build-${{ hashFiles('**/pom.xml') }}
Expand Down Expand Up @@ -126,9 +126,9 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
Expand Down Expand Up @@ -165,11 +165,11 @@ jobs:
sudo rm -rf /usr/local/share/boost
sudo rm -rf $AGENT_TOOLSDIRECTORY
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
Expand Down Expand Up @@ -234,15 +234,15 @@ jobs:
sudo rm -rf /usr/local/share/boost
sudo rm -rf $AGENT_TOOLSDIRECTORY
- name: Checkout Code
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
submodules: 'recursive'
- name: Set up JDK ${{env.JAVA_VERSION}}
uses: actions/setup-java@v3
uses: actions/setup-java@v4
with:
distribution: ${{env.JAVA_DISTRIBUTION}}
java-version: ${{env.JAVA_VERSION}}
- uses: actions/cache@v3
- uses: actions/cache@v4
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-build-${{ hashFiles('**/pom.xml') }}
Expand All @@ -256,10 +256,17 @@ jobs:
USER_NAME: ${{ secrets.USER_NAME }}
ACCESS_TOKEN: ${{ secrets.ACCESS_TOKEN }}
run: |
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -B -V -e -Pcompose -Dmicroservice-docker -Dquickstart-docker -Ddeploy -Dtar -DskipTests clean install
# set some bogus URLs to trigger dependency download via maven
DIST_URLS="-Durl.zookeeper=https://bogus.apache.org/zookeeper/zookeeper-3.7.2/apache-zookeeper-3.7.2-bin.tar.gz.tar.gz \
-Durl.accumulo=https://bogus.apache.org/accumulo/2.1.3/accumulo-2.1.3-bin.tar.gz \
-Durl.wildfly=https://bogus.jboss.org/wildfly/17.0.1.Final/wildfly-17.0.1.Final.tar.gz \
-Durl.hadoop=https://bogus.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz \
-Durl.maven=https://bogus.apache.org/maven/maven-3/3.8.8/binaries/apache-maven-3.8.8-bin.tar.gz"
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -B -V -e -Pcompose -Dmicroservice-docker -Dquickstart-docker -Dquickstart-maven ${DIST_URLS} -Ddeploy -Dtar -DskipTests -Dmaven.build.cache.enabled=false clean install
# free up some space so that we don't run out
docker system prune -f
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -B -V -e -Pcompose -Dmicroservice-docker -Dquickstart-docker -Ddeploy -Dtar -DskipTests clean
mvn -s $GITHUB_WORKSPACE/.github/workflows/settings.xml -B -V -e -Pcompose -Dmicroservice-docker -Dquickstart-docker -Dquickstart-maven ${DIST_URLS} -Ddeploy -Dtar -DskipTests -Dmaven.build.cache.enabled=false clean
cd docker
./bootstrap.sh
attempt=0
Expand Down
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
Expand Up @@ -82,3 +82,9 @@
[submodule "microservices/starters/cached-results"]
path = microservices/starters/cached-results
url = git@github.com:NationalSecurityAgency/datawave-spring-boot-starter-cached-results.git
[submodule "microservices/services/map"]
path = microservices/services/map
url = git@github.com:NationalSecurityAgency/datawave-map-service.git
[submodule "microservices/services/file-provider"]
path = microservices/services/file-provider
url = git@github.com:NationalSecurityAgency/datawave-file-provider-service.git
2 changes: 1 addition & 1 deletion .mvn/maven-build-cache-config.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
-->

<configuration>
<enabled>true</enabled>
<enabled>false</enabled>
<hashAlgorithm>SHA-256</hashAlgorithm>
<validateXml>true</validateXml>
<local>
Expand Down
2 changes: 1 addition & 1 deletion common-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<parent>
<groupId>gov.nsa.datawave</groupId>
<artifactId>datawave-parent</artifactId>
<version>7.5.0-SNAPSHOT</version>
<version>7.10.0-SNAPSHOT</version>
</parent>
<artifactId>datawave-common-test</artifactId>
<name>${project.artifactId}</name>
Expand Down
13 changes: 13 additions & 0 deletions contrib/datawave-quickstart/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,3 +23,16 @@ provide the exact same capabilities described below, but hosted on a CentOS 7 ba
### Get Started

DataWave Quickstart installation instructions are [here](https://code.nsa.gov/datawave/docs/quickstart)

---
### A note on building:

You can specify to use maven to fetch the DataWave, Hadoop, Accumulo, ZooKeeper tar.gz files
by using the `-Dquickstart-maven` flag with your mvn command. This will use maven to
download the tar files to your local repository then copy them to the appropriate directory
after downloading.

In order to deploy a new dependency, you can use a command similar to the following, using
Acccumulo-2.1.3 as an example. The command must be run from the same directory as the tar file.

`mvn deploy:deploy-file -DrepositoryId=github-datawave -Durl=https://maven.pkg.github.com/NationalSecurityAgency/datawave -DgroupId=gov.nsa.datawave.quickstart -DartifactId=accumulo -Dversion=2.1.3 -Dfile=accumulo-2.1.3-bin.tar.gz -Dpackaging=tar.gz`
Loading

0 comments on commit 58af31e

Please sign in to comment.