Skip to content

Split e2e tests from samples #412

Split e2e tests from samples

Split e2e tests from samples #412

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle
name: Build Validation
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up JDK 11
uses: actions/setup-java@v2
with:
java-version: '11'
distribution: 'microsoft'
- name: set JDK_11 environment variable test compiling and running
env:
ACTIONS_ALLOW_UNSECURE_COMMANDS: true
run: echo ::set-env name=JDK_11::$(echo $JAVA_HOME)
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Build with Gradle
run: ./gradlew build
# TODO: Move the sidecar into a central image repository
- name: Initialize Durable Task Sidecar
run: docker run --name durabletask-sidecar -p 4001:4001 --env 'DURABLETASK_SIDECAR_LOGLEVEL=Debug' -d kaibocai/durabletask-sidecar:latest start --backend Emulator
# wait for 10 seconds, so sidecar container can be fully up, this will avoid intermittent failing issues for integration tests causing by failed to connect to sidecar
- name: Wait for 10 seconds
run: sleep 10
- name: Integration Tests with Gradle
run: ./gradlew integrationTest
- name: Archive test report
uses: actions/upload-artifact@v2
with:
name: Integration test report
path: client/build/reports/tests/integrationTest
- name: Upload JAR output
uses: actions/upload-artifact@v2
with:
name: Package
path: client/build/libs
functions-e2e-tests:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Publish to local
run: ./gradlew publishToMavenLocal -x sign
- name: Build azure functions sample
run: ./gradlew azureFunctionsPackage
continue-on-error: true
- name: Setup azure functions runtime
run: endtoendtests/e2e-test-setup.ps1 -DockerfilePath endtoendtests/Dockerfile
shell: pwsh
- name: End to End Tests with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: endToEndTest
- name: Archive test report
uses: actions/upload-artifact@v2
with:
name: Integration test report
path: client/build/reports/tests/endToEndTest
functions-sample-tests:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
submodules: true
- name: Set up JDK 8
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'temurin'
- name: Setup Gradle
uses: gradle/gradle-build-action@v2
- name: Publish to local
run: ./gradlew publishToMavenLocal -x sign
- name: Build azure functions sample
run: ./gradlew azureFunctionsPackage
continue-on-error: true
- name: Setup azure functions runtime
run: samples-azure-functions/e2e-test-setup.ps1 -DockerfilePath samples-azure-functions/Dockerfile
shell: pwsh
- name: Sample Tests with Gradle
uses: gradle/gradle-build-action@v2
with:
arguments: sampleTest
- name: Archive test report
uses: actions/upload-artifact@v2
with:
name: Integration test report
path: client/build/reports/tests/endToEndTest