diff --git a/.github/workflows/tests.yml b/.github/workflows/ci.yml similarity index 62% rename from .github/workflows/tests.yml rename to .github/workflows/ci.yml index de892cb8f..c8f2eac96 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/ci.yml @@ -1,4 +1,4 @@ -name: Tests +name: CI on: pull_request: @@ -71,6 +71,47 @@ jobs: name: Event File path: ${{ github.event_path }} + + sdk-test-suite: + runs-on: ubuntu-latest + name: "Integration Test (Test tool ${{ matrix.sdk-test-suite }})" + strategy: + matrix: + sdk-test-suite: [ "1.4" ] + + steps: + - uses: actions/checkout@v4 + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v3 + + - name: Setup sdk-test-suite + run: wget --no-verbose https://github.com/restatedev/sdk-test-suite/releases/download/v${{ matrix.sdk-test-suite }}/restate-sdk-test-suite.jar + + - name: Build restatedev/java-test-services image + run: ./gradlew -Djib.console=plain :test-services:jibDockerBuild + + # Run test suite + - name: Run test suite + run: java -jar restate-sdk-test-suite.jar run --report-dir=test-report restatedev/java-test-services + + # Upload logs and publish test result + - uses: actions/upload-artifact@v4 + if: always() # Make sure this is run even when test fails + with: + name: test-report + path: test-report + - name: Publish Test Results + uses: EnricoMi/publish-unit-test-result-action@v2 + if: always() + with: + files: | + test-report/*/*.xml + # TODO remove once we don't need it anymore e2e: permissions: diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml deleted file mode 100644 index bcf2b75d1..000000000 --- a/.github/workflows/integration.yaml +++ /dev/null @@ -1,112 +0,0 @@ -name: Integration - -# Controls when the workflow will run -on: - pull_request: - push: - branches: - - main - schedule: - - cron: '0 */6 * * *' # Every 6 hours - workflow_dispatch: - inputs: - restateCommit: - description: 'restate commit' - required: false - default: '' - type: string - restateImage: - description: 'restate image, superseded by restate commit' - required: false - default: 'ghcr.io/restatedev/restate:main' - type: string - workflow_call: - inputs: - restateCommit: - description: 'restate commit' - required: false - default: '' - type: string - restateImage: - description: 'restate image, superseded by restate commit' - required: false - default: 'ghcr.io/restatedev/restate:main' - type: string - -jobs: - - sdk-test-suite: - if: github.repository_owner == 'restatedev' - runs-on: ubuntu-latest - name: "Features integration test (sdk-test-suite version ${{ matrix.sdk-test-suite }})" - strategy: - matrix: - sdk-test-suite: [ "1.4" ] - permissions: - contents: read - issues: read - checks: write - pull-requests: write - actions: read - - steps: - - uses: actions/checkout@v4 - with: - repository: restatedev/sdk-java - - ### Download the Restate container image, if needed - # Setup restate snapshot if necessary - # Due to https://github.com/actions/upload-artifact/issues/53 - # We must use download-artifact to get artifacts created during *this* workflow run, ie by workflow call - - name: Download restate snapshot from in-progress workflow - if: ${{ inputs.restateCommit != '' && github.event_name != 'workflow_dispatch' }} - uses: actions/download-artifact@v4 - with: - name: restate.tar - # In the workflow dispatch case where the artifact was created in a previous run, we can download as normal - - name: Download restate snapshot from completed workflow - if: ${{ inputs.restateCommit != '' && github.event_name == 'workflow_dispatch' }} - uses: dawidd6/action-download-artifact@v3 - with: - repo: restatedev/restate - workflow: ci.yml - commit: ${{ inputs.restateCommit }} - name: restate.tar - - name: Install restate snapshot - if: ${{ inputs.restateCommit != '' }} - run: | - output=$(docker load --input restate.tar) - docker tag "${output#*: }" "restatedev/restate-commit-download:latest" - - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: 'temurin' - java-version: '17' - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v3 - - - name: Setup sdk-test-suite - run: wget --no-verbose https://github.com/restatedev/sdk-test-suite/releases/download/v${{ matrix.sdk-test-suite }}/restate-sdk-test-suite.jar - - - name: Build restatedev/java-test-services image - run: ./gradlew -Djib.console=plain :test-services:jibDockerBuild - - # Run test suite - - name: Run test suite - env: - RESTATE_CONTAINER_IMAGE: ${{ inputs.restateCommit != '' && 'restatedev/restate-commit-download:latest' || (inputs.restateImage != '' && inputs.restateImage || 'ghcr.io/restatedev/restate:main') }} - run: java -jar restate-sdk-test-suite.jar run --report-dir=test-report restatedev/java-test-services - - # Upload logs and publish test result - - uses: actions/upload-artifact@v4 - if: always() # Make sure this is run even when test fails - with: - name: test-report - path: test-report - - name: Publish Test Results - uses: EnricoMi/publish-unit-test-result-action@v2 - if: always() - with: - files: | - test-report/*/*.xml