47 create a ledgers deposit account rest client #77
This file contains 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: Develop CI | |
on: | |
# Trigger the workflow when a pull request is opened | |
pull_request: | |
branches: | |
- develop | |
push: | |
branches: | |
- develop | |
env: | |
SONAR_PRJ_KEY: adorsys_ledgers | |
SONAR_ORG: adorsys | |
SONAR_HOST: https://sonarcloud.io | |
GPG_EXECUTABLE: ${{ secrets.GPG_EXECUTABLE }} | |
GPG_SECRET_KEY: ${{ secrets.GPG_SECRET_KEY}} | |
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }} | |
jobs: | |
build: | |
name: Build Ledgers (openjdk 17) | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone ledgers develop repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 for x64 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
architecture: x64 | |
- name: Cache Maven packages | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Build Ledgers | |
run: mvn -ntp -DskipTests -DskipITs -Dmaven.javadoc.skip=true clean install | |
javaDoc: | |
needs: build | |
name: Generate Javadocs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone ledgers develop repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 for x64 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
architecture: x64 | |
- name: Cache Maven packages | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Compile before generate Javadocs | |
run: mvn -ntp -DskipTests -DskipITs -Dmaven.javadoc.skip=true clean install | |
- name: Generate javadocs | |
run: mvn -ntp javadoc:javadoc | |
pmdCheck: | |
needs: build | |
name: Run code analyser PMD | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone ledgers develop repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 for x64 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
architecture: x64 | |
- name: Cache Maven packages | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: build project before check | |
run: mvn -ntp -DskipTests -DskipITs -Dmaven.javadoc.skip=true clean install | |
- name: Check pmd | |
run: mvn -ntp pmd:check | |
UItests: | |
needs: build | |
name: Run UI tests | |
runs-on: ubuntu-latest | |
steps: | |
- name: Clone ledgers develop repository | |
uses: actions/checkout@v2 | |
- name: Set up JDK 17 for x64 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 17 | |
architecture: x64 | |
- name: Cache Maven packages | |
uses: actions/cache@v2 | |
with: | |
path: ~/.m2 | |
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
restore-keys: ${{ runner.os }}-m2 | |
- name: Run UI tests | |
run: mvn -ntp -DskipITs --fail-at-end clean install | |
# integrationTests: | |
# name: Integration Tests | |
# runs-on: ubuntu-latest | |
# env: | |
# TESTCONTAINERS_RYUK_DISABLED: 'true' | |
# steps: | |
# - name: Set up JDK 17 with Maven | |
# uses: actions/setup-java@v1 | |
# with: | |
# java-version: 17 | |
# architecture: x64 | |
# distribution: 'sapmachine' | |
# | |
# - name: Cache Maven dependencies | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.m2 | |
# key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
# restore-keys: ${{ runner.os }}-m2 | |
# | |
# - name: Checkout repository | |
# uses: actions/checkout@v2 | |
# | |
# - name: Print Java Heap and RAM Info | |
# run: java -XX:+PrintFlagsFinal -version | grep -Ei "maxheapsize|maxram" | |
# | |
# - name: Run Maven Integration Tests | |
# run: mvn -ntp clean test-compile failsafe:integration-test failsafe:verify --fail-at-end --errors | |
# | |
# - name: Check Maven Exit Code | |
# run: echo $? | |
# | |
# - name: Upload Failsafe Reports | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: ${{ github.event.repository.name }}-${{ github.ref_name }}-failsafe-reports | |
# path: "**/target/failsafe-reports/*" | |
# retention-days: 10 | |
# sonar: | |
# name: Publish code coverage to Sonar Cloud | |
# needs: build | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Clone ledgers develop repository | |
# uses: actions/checkout@v2 | |
# | |
# - name: Set up JDK 17 for x64 | |
# uses: actions/setup-java@v1 | |
# with: | |
# java-version: 17 | |
# architecture: x64 | |
# | |
# - name: Cache Maven packages | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.m2 | |
# key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
# restore-keys: ${{ runner.os }}-m2 | |
# | |
# - name: Publish to sonarcloud | |
# run: > | |
# mvn | |
# -ntp | |
# clean | |
# org.jacoco:jacoco-maven-plugin:prepare-agent | |
# install | |
# sonar:sonar | |
# -Pcoverage | |
# -Dsonar.host.url=${{ env.SONAR_HOST }} | |
# -Dsonar.projectKey=${{ env.SONAR_PRJ_KEY }} | |
# -Dsonar.organization=${{ env.SONAR_ORG }} | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
# SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} | |
# | |
# deployMavenCentral: | |
# name: Publish ledgers artifacts to Maven Central | |
# needs: [build, UItests] | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Clone ledgers develop repository | |
# uses: actions/checkout@v2 | |
# | |
# - name: Set up JDK 17 for x64 | |
# uses: actions/setup-java@v1 | |
# with: | |
# java-version: 17 | |
# architecture: x64 | |
# | |
# - name: Cache Maven packages | |
# uses: actions/cache@v2 | |
# with: | |
# path: ~/.m2 | |
# key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} | |
# restore-keys: ${{ runner.os }}-m2 | |
# | |
# - name: Publish to Maven Central | |
# run: | | |
# gpg --version | |
# export GPG_TTY="$( tty )" #need to run to sign artifacts with maven | |
# echo ${{ secrets.GPG_SECRET_KEY }} | base64 --decode | gpg --import --batch | |
# echo ${{ secrets.GPG_OWNERTRUST }} | base64 --decode | gpg --batch --import-ownertrust | |
# mvn -ntp --settings scripts/mvn-release-settings.xml \ | |
# -Dhttp.keepAlive=false \ | |
# -Dmaven.wagon.http.pool=false \ | |
# -Dmaven.wagon.httpconnectionManager.ttlSeconds=120 \ | |
# -Prelease -DskipTests -U deploy | |
# shell: bash |