| name: build-test |
| on: [push, pull_request] |
| jobs: |
| smoke: |
| name: smoke |
| timeout-minutes: 10 |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: mvn clean install -DskipTests -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn |
| java-jdk11: |
| name: mvn clean install - jdk11 |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: mvn clean install -pl -:gremlin-javascript,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlin-go,-:gremlin-python -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -Dcoverage |
| - name: Upload to Codecov |
| uses: codecov/codecov-action@v3 |
| with: |
| directory: ./gremlin-tools/gremlin-coverage/target/site |
| java-jdk8: |
| name: mvn clean install - jdk8 |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 8 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '8' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: mvn clean install -pl -:gremlin-javascript -Dci --batch-mode -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn |
| gremlin-server-default: |
| name: gremlin-server default |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :gremlin-server -DskipTests -DskipIntegrationTests=false -DincludeNeo4j |
| gremlin-server-unified: |
| name: gremlin-server unified |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :gremlin-server -DskipTests -DskipIntegrationTests=false -DincludeNeo4j -DtestUnified=true |
| cache-gremlin-server-docker-image: |
| name: cache gremlin-server docker image |
| timeout-minutes: 10 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Generate Gremlin Server Base |
| working-directory: . |
| run: | |
| mvn clean install -pl gremlin-server -DskipTests -DskipIntegrationTests=true -Dci -am |
| - name: Save Docker image |
| working-directory: ./gremlin-server |
| run: docker save --output gremlin-server.tar tinkerpop/gremlin-server |
| - uses: actions/cache@v3 |
| id: gremlin-server-test-docker-image |
| with: |
| path: | |
| ./gremlin-server/* |
| ~/.m2/repository/org/apache/tinkerpop/* |
| key: ${{ github.sha }} |
| # Disabled until Linux containers are supported on Windows runners: https://github.com/actions/virtual-environments/issues/252 |
| # - name: Upload Docker image for Windows |
| # uses: actions/upload-artifact@v3 |
| # with: |
| # name: ${{ github.sha }} |
| # path: ./gremlin-server/gremlin-server.tar |
| # retention-days: 1 |
| spark-core: |
| name: spark core |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest] |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven Windows |
| if: runner.os == 'Windows' |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -DskipImageBuild -Dci |
| - name: Build with Maven Ubuntu |
| if: runner.os == 'Linux' |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :spark-gremlin -DskipTests -DskipIntegrationTests=false '-Dit.test=*IntegrateTest,!SparkGryoSerializerGraphComputerProcessIntegrateTest' |
| spark-gryo: |
| name: spark gryo |
| timeout-minutes: 45 |
| needs: smoke |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| os: [ubuntu-latest, windows-latest] |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven Windows |
| if: runner.os == 'Windows' |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -DskipImageBuild -Dci |
| - name: Build with Maven Ubuntu |
| if: runner.os == 'Linux' |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :spark-gremlin -DskipTests -DskipIntegrationTests=false -Dit.test=SparkGryoSerializerGraphComputerProcessIntegrateTest |
| gremlin-console: |
| name: gremlin-console |
| timeout-minutes: 20 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: | |
| touch gremlin-python/.glv |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :gremlin-console -DskipTests -DskipIntegrationTests=false |
| gremlin-driver: |
| name: gremlin-driver |
| timeout-minutes: 20 |
| needs: cache-gremlin-server-docker-image |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl gremlin-driver -DskipIntegrationTests=false |
| javascript: |
| name: javascript |
| timeout-minutes: 15 |
| needs: cache-gremlin-server-docker-image |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| # Windows Disabled until Linux containers are supported on Windows runners: https://github.com/actions/virtual-environments/issues/252 |
| # os: [ubuntu-latest, windows-latest] |
| os: [ubuntu-latest] |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Get Cached Server Base Image |
| if: matrix.os == 'ubuntu-latest' |
| uses: actions/cache@v3 |
| id: gremlin-server-test-docker-image |
| with: |
| path: | |
| ./gremlin-server/* |
| ~/.m2/repository/org/apache/tinkerpop/* |
| key: ${{ github.sha }} |
| # - name: Download Server Base Image |
| # if: matrix.os == 'windows-latest' |
| # uses: actions/download-artifact@v3 |
| # with: |
| # name: ${{ github.sha }} |
| # path: ./gremlin-server |
| - name: Load Docker Image |
| working-directory: ./gremlin-server |
| run: docker load --input gremlin-server.tar |
| - name: Build with Maven |
| run: | |
| mvn clean install -pl -:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci |
| mvn verify -pl :gremlin-javascript,:gremlint |
| python: |
| name: python |
| timeout-minutes: 20 |
| needs: cache-gremlin-server-docker-image |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK 11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Set up Python 3.x |
| uses: actions/setup-python@v4 |
| with: |
| python-version: '3.8' |
| - name: Build with Maven |
| run: | |
| touch gremlin-python/.glv |
| mvn clean install -pl -:gremlin-javascript,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl gremlin-python |
| dotnet: |
| name: .NET |
| timeout-minutes: 20 |
| needs: cache-gremlin-server-docker-image |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Set up .NET 6.0.x |
| uses: actions/setup-dotnet@v3 |
| with: |
| dotnet-version: '6.0.x' |
| - name: Get Cached Server Base Image |
| uses: actions/cache@v3 |
| id: gremlin-server-test-docker-image |
| with: |
| path: | |
| ./gremlin-server/* |
| ~/.m2/repository/org/apache/tinkerpop/* |
| key: ${{ github.sha }} |
| - name: Load Docker Image |
| working-directory: ./gremlin-server |
| run: docker load --input gremlin-server.tar |
| - name: Build with Maven |
| run: | |
| touch gremlin-dotnet/src/.glv |
| touch gremlin-dotnet/test/.glv |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-:gremlint -q -DskipTests -Dci |
| mvn verify -pl :gremlin-dotnet,:gremlin-dotnet-tests -P gremlin-dotnet |
| neo4j-gremlin: |
| name: neo4j-gremlin |
| timeout-minutes: 20 |
| needs: smoke |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v3 |
| - name: Set up JDK11 |
| uses: actions/setup-java@v3 |
| with: |
| java-version: '11' |
| distribution: 'temurin' |
| - name: Build with Maven |
| run: | |
| mvn clean install -pl -:gremlin-javascript,-:gremlin-python,-gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci |
| mvn verify -pl :neo4j-gremlin -DincludeNeo4j |
| go: |
| name: go |
| timeout-minutes: 20 |
| needs: cache-gremlin-server-docker-image |
| runs-on: ubuntu-latest |
| steps: |
| - name: Checkout |
| uses: actions/checkout@v3 |
| - name: Setup Go |
| uses: actions/setup-go@v3 |
| with: |
| go-version: '1.17' |
| - name: Get Cached Server Base Image |
| uses: actions/cache@v3 |
| id: gremlin-server-test-docker-image |
| with: |
| path: | |
| ./gremlin-server/* |
| ~/.m2/repository/org/apache/tinkerpop/* |
| key: ${{ github.sha }} |
| - name: Load Docker Image |
| working-directory: ./gremlin-server |
| run: docker load --input gremlin-server.tar |
| - name: Build with Maven |
| working-directory: . |
| run: | |
| touch gremlin-go/.glv |
| mvn clean install -pl -:gremlin-python,-:gremlin-javascript,-:gremlin-dotnet,-:gremlin-dotnet-source,-:gremlin-dotnet-tests -q -DskipTests -Dci |
| mvn verify -pl :gremlin-go |
| - name: Upload to Codecov |
| uses: codecov/codecov-action@v3 |
| with: |
| working-directory: ./gremlin-go |
| - name: Go-Vet |
| working-directory: ./gremlin-go |
| run: go vet ./... |