Skip to content

Merge pull request #1 from opensourcevk/main #13

Merge pull request #1 from opensourcevk/main

Merge pull request #1 from opensourcevk/main #13

name: WebClient
on:
push:
branches:
- '**'
pull_request:
branches:
- '**'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
java-version: [ '17' ]
spring-webflux-version: [ '6.1.0', '6.1.21', '6.2.0', '6.2.15', '7.0.2' ]
name: spring-webflux v${{ matrix.spring-webflux-version }}
env:
OKHTTP: 'com.squareup.okhttp3:okhttp,com.squareup.okhttp3:logging-interceptor'
APACHE_CLIENT: 'org.apache.httpcomponents.client5:httpclient5'
FEIGN: 'io.github.openfeign:feign-core'
SPRING_WEB: 'org.springframework:spring-web'
SPRING_WEBFLUX: 'org.springframework:spring-webflux'
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up JDK ${{ matrix.java-version }}
uses: actions/setup-java@v5
with:
distribution: 'temurin'
java-version: ${{ matrix.java-version }}
- name: Cache Maven local repository
uses: actions/cache@v5
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}-java-${{ matrix.java-version }}-webclient-${{ matrix.spring-webflux-version }}
restore-keys: |
${{ runner.os }}-maven-
- name: Set Jakarta EE flag
id: set-jakarta
run: |
if dpkg --compare-versions "${{ matrix.spring-webflux-version }}" ge "7.0.0"; then
# See https://github.com/OpenAPITools/openapi-generator/pull/22030
echo "use-jakarta-ee=true" >> $GITHUB_OUTPUT
else
echo "use-jakarta-ee=false" >> $GITHUB_OUTPUT
fi
- name: Build and run tests with spring-webflux ${{ matrix.spring-webflux-version }}
run: mvn -B test "-Dtest=com.mastercard.developer.oauth2.http.spring.webclient.OAuth2FilterTest" "-Dsurefire.failIfNoSpecifiedTests=false" "-Dspring-webflux.version=${{ matrix.spring-webflux-version }}" "-Dspring-web.version=${{ matrix.spring-webflux-version }}" "-Duse-jakarta-ee=${{ steps.set-jakarta.outputs.use-jakarta-ee }}" "-Dmaven.test.dependency.excludes=${{ env.OKHTTP }},${{ env.FEIGN }}"
env:
CLIENT_ID: ${{ secrets.CLIENT_ID }}
KID: ${{ secrets.KID }}
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
TOKEN_ENDPOINT: ${{ secrets.TOKEN_ENDPOINT }}
ISSUER: ${{ secrets.ISSUER }}
API_BASE_URL: ${{ secrets.API_BASE_URL }}
READ_SCOPES: ${{ secrets.READ_SCOPES }}
WRITE_SCOPES: ${{ secrets.WRITE_SCOPES }}