Adding support for HttpPipeline #5753
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - master | |
| - release-* | |
| tags: | |
| - v* | |
| pull_request: | |
| branches: | |
| - master | |
| - release-* | |
| jobs: | |
| test: | |
| name: "Unit tests" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| continue-on-error: false | |
| env: | |
| JDK_VER: 17 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up OpenJDK ${{ env.JDK_VER }} | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{ env.JDK_VER }} | |
| - name: Run tests | |
| run: ./mvnw clean install -B -q -DskipITs=true | |
| - name: Codecov | |
| uses: codecov/[email protected] | |
| - name: Upload test report for sdk | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-dapr-java-sdk-jdk${{ env.JDK_VER }} | |
| path: sdk/target/jacoco-report/ | |
| - name: Upload test report for sdk-actors | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: report-dapr-java-sdk-actors-jdk${{ env.JDK_VER }} | |
| path: sdk-actors/target/jacoco-report/ | |
| build: | |
| name: "Build jdk:${{ matrix.java }} sb:${{ matrix.spring-boot-display-version }} exp:${{ matrix.experimental }}" | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| continue-on-error: ${{ matrix.experimental }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| java: [ 17 ] | |
| spring-boot-version: [ 3.5.4 ] | |
| spring-boot-display-version: [ 3.5.x ] | |
| experimental: [ false ] | |
| include: | |
| - java: 17 | |
| spring-boot-version: 3.4.9 | |
| spring-boot-display-version: 3.4.x | |
| experimental: false | |
| env: | |
| GOVER: "1.20" | |
| GOOS: linux | |
| GOARCH: amd64 | |
| GOPROXY: https://proxy.golang.org | |
| JDK_VER: ${{ matrix.java }} | |
| DAPR_CLI_VER: 1.15.0 | |
| DAPR_RUNTIME_VER: 1.16.0-rc.5 | |
| DAPR_INSTALL_URL: https://raw.githubusercontent.com/dapr/cli/v1.15.0/install/install.sh | |
| DAPR_CLI_REF: | |
| DAPR_REF: | |
| TOXIPROXY_URL: https://github.com/Shopify/toxiproxy/releases/download/v2.5.0/toxiproxy-server-linux-amd64 | |
| steps: | |
| - name: Install Stable Docker | |
| id: setup_docker | |
| uses: docker/setup-docker-action@v4 | |
| - name: Check Docker version | |
| run: docker version | |
| - uses: actions/checkout@v5 | |
| - name: Set up OpenJDK ${{ env.JDK_VER }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{ env.JDK_VER }} | |
| - name: Set up Dapr CLI | |
| run: wget -q ${{ env.DAPR_INSTALL_URL }} -O - | /bin/bash -s ${{ env.DAPR_CLI_VER }} | |
| - name: Set up Go ${{ env.GOVER }} | |
| if: env.DAPR_REF != '' || env.DAPR_CLI_REF != '' | |
| uses: actions/setup-go@v6 | |
| with: | |
| go-version: ${{ env.GOVER }} | |
| - name: Checkout Dapr CLI repo to override dapr command. | |
| uses: actions/checkout@v5 | |
| if: env.DAPR_CLI_REF != '' | |
| with: | |
| repository: dapr/cli | |
| ref: ${{ env.DAPR_CLI_REF }} | |
| path: cli | |
| - name: Checkout Dapr repo to override daprd. | |
| uses: actions/checkout@v5 | |
| if: env.DAPR_REF != '' | |
| with: | |
| repository: dapr/dapr | |
| ref: ${{ env.DAPR_REF }} | |
| path: dapr | |
| - name: Build and override dapr cli with referenced commit. | |
| if: env.DAPR_CLI_REF != '' | |
| run: | | |
| cd cli | |
| make | |
| sudo cp dist/linux_amd64/release/dapr /usr/local/bin/dapr | |
| cd .. | |
| - name: Uninstall Dapr runtime ${{ env.DAPR_RUNTIME_VER }} | |
| run: dapr uninstall --all | |
| - name: Ensure Dapr runtime uninstalled | |
| run: | | |
| while [ "$(docker ps -aq --filter 'name=^/dapr')" ]; do | |
| echo "Waiting for Dapr containers to be deleted..." | |
| sleep 5 | |
| done | |
| echo "All dapr containers are deleted." | |
| - name: Initialize Dapr runtime ${{ env.DAPR_RUNTIME_VER }} | |
| run: dapr init --runtime-version ${{ env.DAPR_RUNTIME_VER }} | |
| - name: Build and override daprd with referenced commit. | |
| if: env.DAPR_REF != '' | |
| run: | | |
| cd dapr | |
| make | |
| mkdir -p $HOME/.dapr/bin/ | |
| cp dist/linux_amd64/release/daprd $HOME/.dapr/bin/daprd | |
| cd .. | |
| - name: Override placement service. | |
| if: env.DAPR_REF != '' | |
| run: | | |
| docker stop dapr_placement | |
| cd dapr | |
| ./dist/linux_amd64/release/placement & | |
| - name: Spin local environment | |
| run: | | |
| docker compose -f ./sdk-tests/deploy/local-test.yml up -d mongo kafka | |
| docker ps | |
| - name: Install local ToxiProxy to simulate connectivity issues to Dapr sidecar | |
| run: | | |
| mkdir -p /home/runner/.local/bin | |
| wget -q ${{ env.TOXIPROXY_URL }} -O /home/runner/.local/bin/toxiproxy-server | |
| chmod +x /home/runner/.local/bin/toxiproxy-server | |
| /home/runner/.local/bin/toxiproxy-server --version | |
| - name: Clean up and install sdk | |
| run: ./mvnw clean install -B -q -DskipTests | |
| - name: Integration tests using spring boot version ${{ matrix.spring-boot-version }} | |
| id: integration_tests | |
| run: PRODUCT_SPRING_BOOT_VERSION=${{ matrix.spring-boot-version }} ./mvnw -B -Pintegration-tests dependency:copy-dependencies verify | |
| env: | |
| DOCKER_HOST: ${{steps.setup_docker.outputs.sock}} | |
| - name: Upload failsafe test report for sdk-tests on failure | |
| if: ${{ failure() && steps.integration_tests.conclusion == 'failure' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: failsafe-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }} | |
| path: sdk-tests/target/failsafe-reports | |
| - name: Upload surefire test report for sdk-tests on failure | |
| if: ${{ failure() && steps.integration_tests.conclusion == 'failure' }} | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: surefire-report-sdk-tests-jdk${{ matrix.java }}-sb${{ matrix.spring-boot-version }} | |
| path: sdk-tests/target/surefire-reports | |
| publish: | |
| runs-on: ubuntu-latest | |
| needs: [ build, test ] | |
| timeout-minutes: 30 | |
| env: | |
| JDK_VER: 17 | |
| OSSRH_USER_TOKEN: ${{ secrets.OSSRH_USER_TOKEN }} | |
| OSSRH_PWD_TOKEN: ${{ secrets.OSSRH_PWD_TOKEN }} | |
| GPG_KEY: ${{ secrets.GPG_KEY }} | |
| GPG_PWD: ${{ secrets.GPG_PWD }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Set up OpenJDK ${{ env.JDK_VER }} | |
| uses: actions/setup-java@v5 | |
| with: | |
| distribution: 'temurin' | |
| java-version: ${{ env.JDK_VER }} | |
| - name: Get pom parent version | |
| run: | | |
| PARENT_VERSION=$(./mvnw -B -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec) | |
| echo "PARENT_VERSION=$PARENT_VERSION" >> $GITHUB_ENV | |
| - name: Is SNAPSHOT release ? | |
| if: contains(github.ref, 'master') && contains(env.PARENT_VERSION, '-SNAPSHOT') | |
| run: | | |
| echo "DEPLOY_OSSRH=true" >> $GITHUB_ENV | |
| - name: Is Release or RC version ? | |
| if: startswith(github.ref, 'refs/tags/v') && !contains(env.PARENT_VERSION, '-SNAPSHOT') | |
| run: | | |
| echo "DEPLOY_OSSRH=true" >> $GITHUB_ENV | |
| - name: Publish to ossrh | |
| if: env.DEPLOY_OSSRH == 'true' | |
| run: | | |
| echo ${{ secrets.GPG_PRIVATE_KEY }} | base64 -d > private-key.gpg | |
| export GPG_TTY=$(tty) | |
| gpg --batch --import private-key.gpg | |
| ./mvnw -V -B -Dgpg.skip=false -DskipTests -s settings.xml deploy | |
| curl -X POST https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/io.dapr |