|
| 1 | +name: javadocs |
| 2 | + |
| 3 | +on: |
| 4 | + push: |
| 5 | + branches: |
| 6 | + - main |
| 7 | + - '[0-9]+.[0-9]+.x' |
| 8 | + tags: |
| 9 | + - '**' |
| 10 | + pull_request: |
| 11 | + |
| 12 | +permissions: # added using https://github.com/step-security/secure-repo |
| 13 | + contents: read |
| 14 | + |
| 15 | +env: |
| 16 | + JAVA_VERSION: 17 |
| 17 | + MAVEN_CLI_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false --batch-mode -Dlicense.skip=true |
| 18 | + MAVEN_COMPILE_ARGS: clean install -Dmaven.test.skip -Dmaven.assembly.skip=true -Dmaven.source.skip -Pskip-spark-runtimes -T4 |
| 19 | + MAVEN_SCALADOC_ARGS: generate-sources scala:doc-jar |
| 20 | + MAVEN_JAVADOC_ARGS: generate-sources javadoc:jar -Psite |
| 21 | + |
| 22 | +jobs: |
| 23 | + javadocs: |
| 24 | + name: build-javadocs / ${{ matrix.projects.name }} / ${{ matrix.scala-version }} |
| 25 | + runs-on: ubuntu-latest |
| 26 | + strategy: |
| 27 | + fail-fast: false |
| 28 | + matrix: |
| 29 | + scala-version: [ "2.12", "2.13" ] |
| 30 | + projects: |
| 31 | + - name: accumulo |
| 32 | + list: geomesa-accumulo/geomesa-accumulo-datastore,geomesa-accumulo/geomesa-accumulo-dist,geomesa-accumulo/geomesa-accumulo-distributed-runtime,geomesa-accumulo/geomesa-accumulo-gs-plugin,geomesa-accumulo/geomesa-accumulo-indices,geomesa-accumulo/geomesa-accumulo-iterators,geomesa-accumulo/geomesa-accumulo-jobs,geomesa-accumulo/geomesa-accumulo-spark,geomesa-accumulo/geomesa-accumulo-tools |
| 33 | + - name: arrow |
| 34 | + list: geomesa-arrow/geomesa-arrow-datastore,geomesa-arrow/geomesa-arrow-dist,geomesa-arrow/geomesa-arrow-gt,geomesa-arrow/geomesa-arrow-jts,geomesa-arrow/geomesa-arrow-tools |
| 35 | + - name: cassandra |
| 36 | + list: geomesa-cassandra/geomesa-cassandra-datastore,geomesa-cassandra/geomesa-cassandra-dist,geomesa-cassandra/geomesa-cassandra-gs-plugin,geomesa-cassandra/geomesa-cassandra-tools |
| 37 | + - name: convert |
| 38 | + list: geomesa-convert/geomesa-convert-all,geomesa-convert/geomesa-convert-avro,geomesa-convert/geomesa-convert-avro-schema-registry,geomesa-convert/geomesa-convert-common,geomesa-convert/geomesa-convert-fixedwidth,geomesa-convert/geomesa-convert-jdbc,geomesa-convert/geomesa-convert-json,geomesa-convert/geomesa-convert-parquet,geomesa-convert/geomesa-convert-redis-cache,geomesa-convert/geomesa-convert-shp,geomesa-convert/geomesa-convert-simplefeature,geomesa-convert/geomesa-convert-text,geomesa-convert/geomesa-convert-xml |
| 39 | + - name: features |
| 40 | + list: geomesa-features/geomesa-feature-all,geomesa-features/geomesa-feature-avro,geomesa-features/geomesa-feature-common,geomesa-features/geomesa-feature-exporters,geomesa-features/geomesa-feature-kryo |
| 41 | + - name: fs |
| 42 | + list: geomesa-fs/geomesa-fs-datastore,geomesa-fs/geomesa-fs-dist,geomesa-fs/geomesa-fs-gs-plugin,geomesa-fs/geomesa-fs-spark,geomesa-fs/geomesa-fs-tools |
| 43 | + - name: fs-storage |
| 44 | + list: geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-api,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-common,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-convert,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-orc-io,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet,geomesa-fs/geomesa-fs-storage/geomesa-fs-storage-parquet-io |
| 45 | + - name: gt |
| 46 | + list: geomesa-gt/geomesa-gt-dist,geomesa-gt/geomesa-gt-gs-plugin,geomesa-gt/geomesa-gt-partitioning,geomesa-gt/geomesa-gt-spark,geomesa-gt/geomesa-gt-tools |
| 47 | + - name: hbase |
| 48 | + list: geomesa-hbase/geomesa-hbase-datastore,geomesa-hbase/geomesa-hbase-dist,geomesa-hbase/geomesa-hbase-distributed-runtime-hbase2,geomesa-hbase/geomesa-hbase-gs-plugin,geomesa-hbase/geomesa-hbase-jobs,geomesa-hbase/geomesa-hbase-rpc,geomesa-hbase/geomesa-hbase-server,geomesa-hbase/geomesa-hbase-server-hbase2,geomesa-hbase/geomesa-hbase-spark,geomesa-hbase/geomesa-hbase-tools |
| 49 | + - name: kafka |
| 50 | + list: geomesa-kafka/geomesa-kafka-confluent,geomesa-kafka/geomesa-kafka-datastore,geomesa-kafka/geomesa-kafka-dist,geomesa-kafka/geomesa-kafka-gs-plugin,geomesa-kafka/geomesa-kafka-tools,geomesa-kafka/geomesa-kafka-utils |
| 51 | + - name: lambda |
| 52 | + list: geomesa-lambda/geomesa-lambda-datastore,geomesa-lambda/geomesa-lambda-dist,geomesa-lambda/geomesa-lambda-gs-plugin,geomesa-lambda/geomesa-lambda-tools |
| 53 | + - name: misc-1 |
| 54 | + list: geomesa-memory/geomesa-cqengine,geomesa-memory/geomesa-cqengine-datastore,geomesa-metrics/geomesa-metrics-micrometer,geomesa-process/geomesa-process-vector |
| 55 | + - name: misc-2 |
| 56 | + list: geomesa-filter,geomesa-index-api,geomesa-jobs,geomesa-security,geomesa-tools,geomesa-z3 |
| 57 | + - name: redis |
| 58 | + list: geomesa-redis/geomesa-redis-datastore,geomesa-redis/geomesa-redis-dist,geomesa-redis/geomesa-redis-gs-plugin,geomesa-redis/geomesa-redis-tools |
| 59 | + - name: spark |
| 60 | + list: geomesa-spark/geomesa_pyspark,geomesa-spark/geomesa-spark-converter,geomesa-spark/geomesa-spark-core,geomesa-spark/geomesa-spark-jts,geomesa-spark/geomesa-spark-jupyter-leaflet,geomesa-spark/geomesa-spark-sql,geomesa-spark/geomesa-spark-test,geomesa-spark/geomesa-spark-test-with-sedona |
| 61 | + - name: utils |
| 62 | + list: geomesa-utils-parent/geomesa-bom,geomesa-utils-parent/geomesa-hadoop-utils,geomesa-utils-parent/geomesa-utils |
| 63 | + steps: |
| 64 | + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 |
| 65 | + - uses: actions/setup-java@dded0888837ed1f317902acf8a20df0ad188d165 # v5.0.0 |
| 66 | + with: |
| 67 | + distribution: temurin |
| 68 | + java-version: "${{ env.JAVA_VERSION }}" |
| 69 | + - name: Generate cache key |
| 70 | + run: echo "MOD_SELECTOR=$(echo '${{ matrix.projects.list }}' | sed 's/[^a-zA-Z0-9_.-]/-/g' | head -c 256)" >> "$GITHUB_ENV" |
| 71 | + - uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.3.0 |
| 72 | + with: |
| 73 | + key: ${{ hashFiles('**/pom.xml') }}-javadocs-${{ matrix.scala-version }}-${{ env.MOD_SELECTOR }} |
| 74 | + path: ~/.m2/repository/ |
| 75 | + - name: Set Scala version |
| 76 | + run: ./build/scripts/change-scala-version.sh ${{ matrix.scala-version }} |
| 77 | + - name: Build with Maven |
| 78 | + run: mvn $MAVEN_COMPILE_ARGS $MAVEN_CLI_OPTS -am -pl ${{ matrix.projects.list }},geomesa-arrow/geomesa-arrow-jts |
| 79 | + - name: Build scaladocs |
| 80 | + run: mvn $MAVEN_SCALADOC_ARGS $MAVEN_CLI_OPTS -pl ${{ matrix.projects.list }} |
| 81 | + - name: Build javadocs |
| 82 | + run: mvn $MAVEN_JAVADOC_ARGS $MAVEN_CLI_OPTS -pl geomesa-arrow/geomesa-arrow-jts |
| 83 | + - name: Remove geomesa artifacts |
| 84 | + if: success() || failure() |
| 85 | + run: rm -rf ~/.m2/repository/org/locationtech/geomesa |
| 86 | + validate-ci: |
| 87 | + # validates that we haven't missed any projects in our build matrix |
| 88 | + name: validate-ci |
| 89 | + runs-on: ubuntu-latest |
| 90 | + if: github.event_name == 'pull_request' |
| 91 | + steps: |
| 92 | + - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 |
| 93 | + - name: Validate project list |
| 94 | + run: | |
| 95 | + while IFS= read -r -d '' pom; do |
| 96 | + grep -q 'packaging>pom' "$pom" || { |
| 97 | + module="${pom%/pom.xml}" |
| 98 | + module="${module#./}" |
| 99 | + echo "Checking $module" |
| 100 | + yq -e '.jobs.javadocs.strategy.matrix.projects[].list | select(test("(^|[, ])'"${module}"'($|[, ])"))' .github/workflows/javadocs.yml >/dev/null 2>&1 || exit 1 |
| 101 | + } |
| 102 | + done < <(find . -name pom.xml -print0) |
| 103 | + echo "done" |
0 commit comments