Skip to content
Snippets Groups Projects
nshm.gradle 6.12 KiB
Newer Older
apply plugin: "org.ajoberstar.grgit"
buildscript {
  repositories {
    mavenCentral()
  }
  dependencies {
    classpath "org.yaml:snakeyaml:1.33"
  }
}

import org.yaml.snakeyaml.Yaml

ext {
  nshmDir = "nshms";
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  envMemory = System.getenv("CI_RUNNER_MEMORY")
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  xmx = envMemory ? envMemory : "16g"
  // Clone repo
  downloadNshm = {nshm ->
    def repo = nshm.repo
    def tag = nshm.tag
    def year = nshm.year
    def uri = "https://code.usgs.gov/ghsc/nshmp/nshms/${repo}.git"
    def nshmFile = new File("${projectDir}/${nshmDir}/${repo}-${year}")

    if (nshmFile.exists()) {
      delete nshmFile
    }
    grgit.clone(
        dir: nshmFile,
        uri: uri,
        refToCheckout: tag)

  // Returns a NSHM from nshms.yml array
  findNshm = {repo, year ->
    def yaml = new Yaml()
    def nshmConfig = new Yaml().load(new File("${projectDir}/nshms.yml").newInputStream())
    def nshm = nshmConfig.nshms.find{nshm -> nshm.repo == repo && nshm.year == year}

    if (nshm == null) {
      throw new Exception("NSHM ${repo} ${year} not found.")
    }

    return nshm
  }

task cleanNshm(type: Delete) {
  delete nshmDir
clean.dependsOn cleanNshm
// Download all NSHMs
task nshms() {
  dependsOn cleanNshm
  def yaml = new Yaml()
  def nshmConfig = new Yaml().load(new File("${projectDir}/nshms.yml").newInputStream())

  doLast {
    for (nshm in nshmConfig.nshms) {
      // Download NSHM
      downloadNshm(nshm)
    }
  }
}

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
task cleanGenerated(type: Delete) {
  delete "src/test/resources/e2e/actual"
}

// Generate Alaska 2007 for CI
task generateAlaska2007(type: JavaExec) {
  description = "Generate alaska-2007 acutal for CI/CD"
  classpath = sourceSets.test.runtimeClasspath

  doFirst {
    downloadNshm(findNshm("nshm-alaska", 2007))
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs("-DNSHM=nshm-alaska-2007")

  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
}

// Generate Alaska 2023 for CI
task generateAlaska2023(type: JavaExec) {
  description = "Generate alaska-2023 acutal for CI/CD"
  classpath = sourceSets.test.runtimeClasspath

  doFirst {
    downloadNshm(findNshm("nshm-alaska", 2023))
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs("-DNSHM=nshm-alaska-2023")

  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
}

// Generate CONUS 2018 for CI
task generateConus2018(type: JavaExec) {
  description = "Generate conus-2018 acutal for CI/CD"
  classpath = sourceSets.test.runtimeClasspath

  doFirst {
    downloadNshm(findNshm("nshm-conus", 2018))
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs("-DNSHM=nshm-conus-2018")

  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
}

// Generate CONUS 2023 for CI
task generateConus2023(type: JavaExec) {
  description = "Generate conus-2023 acutal for CI/CD"
  classpath = sourceSets.test.runtimeClasspath

  doFirst {
    downloadNshm(findNshm("nshm-conus", 2023))
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs("-DNSHM=nshm-conus-2023")

  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
}

// Generate Hawaii 2021 for CI
task generateHawaii2021(type: JavaExec) {
  description = "Generate hawaii-2021 acutal for CI/CD"
  classpath = sourceSets.test.runtimeClasspath

  doFirst {
    downloadNshm(findNshm("nshm-hawaii", 2021))
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs("-DNSHM=nshm-hawaii-2021")

  main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
}

 // Generate PRVI 2025 for CI
 task generatePrvi2025(type: JavaExec) {
 description = "Generate prvi-2025 acutal for CI/CD"
 classpath = sourceSets.test.runtimeClasspath
 doFirst {
 downloadNshm(findNshm("nshm-prvi", 2025))
 }
 jvmArgs("-DNSHM=nshm-prvi-2025")
 main = "gov.usgs.earthquake.nshmp.model.GenerateActual"
 }
 */
Powers, Peter M.'s avatar
Powers, Peter M. committed
// Test Alaska 2007 NSHM
task testAlaska2007(type: Test) {
  description = "Test Alaska 2007 NSHM"
  group = "verification"

  doFirst {
    downloadNshm(findNshm("nshm-alaska", 2007))
  }

  testLogging {
    exceptionFormat "full"
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  systemProperties(System.getProperties())

Powers, Peter M.'s avatar
Powers, Peter M. committed
  useJUnitPlatform()
  jvmArgs(
      "-Xms2g",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xmx${xmx}",
Powers, Peter M.'s avatar
Powers, Peter M. committed
      )

  filter {
    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testAlaska2007"
  }
}

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
// Test Alaska 2023 NSHM
task testAlaska2023(type: Test) {
  description = "Test Alaska 2023 NSHM"
  group = "verification"
    downloadNshm(findNshm("nshm-alaska", 2023))
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

  testLogging {
    exceptionFormat "full"
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  systemProperties(System.getProperties())

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  useJUnitPlatform()
  jvmArgs(
      "-Xms2g",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xmx${xmx}",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      )

  filter {
    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testAlaska2023"
  }
}

// Test CONUS 2018 NSHM
task testConus2018(type: Test) {
  description = "Test CONUS 2018 NSHM"
  group = "verification"
    downloadNshm(findNshm("nshm-conus", 2018))
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

  testLogging {
    exceptionFormat "full"
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  systemProperties(System.getProperties())

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  useJUnitPlatform()
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  jvmArgs(
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xms2g",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xmx${xmx}",
      )
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

  filter {
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2018"
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  }
}

// Test CONUS 2023 NSHM
task testConus2023(type: Test) {
  description = "Test CONUS 2023 NSHM"
  group = "verification"
    downloadNshm(findNshm("nshm-conus", 2023))
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

  testLogging {
    exceptionFormat "full"
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  systemProperties(System.getProperties())

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  useJUnitPlatform()
  jvmArgs(
      "-Xms2g",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xmx${xmx}",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      )

  filter {
    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testConus2023"
  }
}

// Test Hawaii 2021 NSHM
task testHawaii2021(type: Test) {
  description = "Test Hawaii 2021 NSHM"
  group = "verification"
    downloadNshm(findNshm("nshm-hawaii", 2021))
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed

  testLogging {
    exceptionFormat "full"
  }

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  systemProperties(System.getProperties())

Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
  useJUnitPlatform()
  jvmArgs(
      "-Xms2g",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      "-Xmx${xmx}",
Clayton, Brandon Scott's avatar
Clayton, Brandon Scott committed
      )

  filter {
    includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testHawaii2021"
  }
}
 task testPrvi2025(type: Test) {
 description = "Test PRVI 2025 NSHM"
 group = "verification"
 doFirst {
 downloadNshm(findNshm("nshm-prvi", 2025))
 }
 testLogging {
 exceptionFormat "full"
 }
 systemProperties(System.getProperties())
 useJUnitPlatform()
 jvmArgs(
 "-Xms2g",
 "-Xmx${xmx}",
 )
 filter {
 includeTestsMatching "gov.usgs.earthquake.nshmp.model.NshmTests.testPrvi2025"
 }
 }
 */