Merge pull request #770 from commercetools/gen-sdk-updates #5784
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
on: | |
push: | |
branches-ignore: | |
- 'renovate/**' | |
workflow_dispatch: | |
pull_request: | |
merge_group: | |
name: CI | |
# Declare default permissions as read only. | |
permissions: {} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
jobs: | |
integrationTest: | |
name: Integration tests | |
runs-on: ubuntu-latest | |
steps: | |
# Get GitHub token via the CT SDKs App | |
- name: Generate GitHub token (via CT SDKs App) | |
id: generate_github_token | |
uses: actions/create-github-app-token@a0de6af83968303c8c955486bf9739a57d23c7f1 # v1 | |
with: | |
app-id: ${{ secrets.CT_SDKS_APP_ID }} | |
private-key: ${{ secrets.CT_SDKS_APP_PEM }} | |
- name: Get App user | |
id: get_app_user | |
env: | |
GITHUB_TOKEN: ${{ steps.generate_github_token.outputs.token }} | |
run: | | |
export GH_APP_USER=`gh api /users/ct-sdks%5Bbot%5D | jq .id` | |
echo "email=${GH_APP_USER}+ct-sdks[bot]@users.noreply.github.com" >> "$GITHUB_OUTPUT" | |
- name: Checkout | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
with: | |
# Pass a personal access token (using our CT SDKs App) to be able to trigger other workflows | |
# https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token | |
# https://github.community/t/action-does-not-trigger-another-on-push-tag-action/17148/8 | |
token: ${{ steps.generate_github_token.outputs.token }} | |
- uses: gradle/wrapper-validation-action@216d1ad2b3710bf005dc39237337b9673fd8fcd5 # v3.3.2 | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Graphviz | |
uses: ts-graphviz/setup-graphviz@b1de5da23ed0a6d14e0aeee8ed52fdd87af2363c # v2.0.2 | |
- name: Fix code style | |
if: github.event_name == 'push' && github.ref != 'refs/heads/main' | |
run: ./gradlew spotlessApply | |
- uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1 | |
id: commit_style_fix | |
if: github.event_name == 'push' && github.ref != 'refs/heads/main' | |
with: | |
push_options: --dry-run | |
commit_message: "spotless: Fix code style" | |
commit_author: ct-sdks[bot] <${{ steps.get_app_user.outputs.email }}> | |
commit_user_name: ct-sdks[bot] | |
commit_user_email: ${{ steps.get_app_user.outputs.email }} | |
- name: "Run if style changes have been detected" | |
if: steps.commit_style_fix.outputs.changes_detected == 'true' | |
run: echo "$HASH" >> .git-blame-ignore-revs | |
env: | |
HASH: ${{steps.commit_style_fix.outputs.commit_hash}} | |
- uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1 | |
id: commit_rev_ignore | |
if: github.event_name == 'push' && github.ref != 'refs/heads/main' | |
with: | |
push_options: --dry-run | |
file_pattern: '.git-blame-ignore-revs' | |
commit_message: "spotless: add commit to blame ignore revs file" | |
commit_author: ct-sdks[bot] <${{ steps.get_app_user.outputs.email }}> | |
commit_user_name: ct-sdks[bot] | |
commit_user_email: ${{ steps.get_app_user.outputs.email }} | |
- name: Check licenses | |
if: github.event_name == 'push' | |
run: ./gradlew checkLicense | |
- name: Show failing licenses | |
if: ${{ failure() }} | |
run: cat licenses/dependencies-without-allowed-license.json | |
- uses: stefanzweifel/git-auto-commit-action@8621497c8c39c72f3e2a999a26b4ca1b5058a842 # v5.0.1 | |
id: commit_license_change | |
if: github.event_name == 'push' && github.ref != 'refs/heads/main' | |
with: | |
push_options: --dry-run | |
file_pattern: 'licenses/index.json licenses/**/index.json' | |
commit_message: "TASK: Updating license information" | |
commit_author: ct-sdks[bot] <${{ steps.get_app_user.outputs.email }}> | |
commit_user_name: ct-sdks[bot] | |
commit_user_email: ${{ steps.get_app_user.outputs.email }} | |
disable_globbing: true | |
- name: Push if changes | |
if: steps.commit_style_fix.outputs.changes_detected || steps.commit_rev_ignore.outputs.changes_detected || steps.commit_license_change.outputs.changes_detected | |
run: git push origin | |
- name: Run integration tests for PR | |
if: (github.event_name == 'pull_request' && !startsWith(github.head_ref, 'renovate/')) || github.event_name == 'merge_group' | |
run: ./gradlew clean build publishMavenPublicationToMavenLocal runMainMethodThreadLeakTest runMainMethodMemoryLeakTest writeVersionToExamples | |
env: | |
CTP_CLIENT_ID: ${{ secrets.CTP_CLIENT_ID_PR }} | |
CTP_CLIENT_SECRET: ${{ secrets.CTP_CLIENT_SECRET_PR }} | |
CTP_PROJECT_KEY: ${{ secrets.CTP_PROJECT_KEY_PR }} | |
SOURCE_TAG: ${{ github.ref_name }} | |
CTP_JVM_SDK_LOG_LEVEL: OFF | |
- name: Run integration tests | |
if: github.event_name != 'pull_request' && github.event_name != 'merge_group' | |
run: ./gradlew clean build publishMavenPublicationToMavenLocal runMainMethodThreadLeakTest runMainMethodMemoryLeakTest writeVersionToExamples | |
env: | |
CTP_CLIENT_ID: ${{ secrets.CTP_CLIENT_ID }} | |
CTP_CLIENT_SECRET: ${{ secrets.CTP_CLIENT_SECRET }} | |
CTP_PROJECT_KEY: ${{ secrets.CTP_PROJECT_KEY }} | |
SOURCE_TAG: ${{ github.ref_name }} | |
CTP_JVM_SDK_LOG_LEVEL: OFF | |
- name: Test examples | |
run: | | |
cd examples/maven-okhttp3 && mvn verify --no-transfer-progress | |
cd ../maven-okhttp4 && mvn verify --no-transfer-progress | |
- name: Collect code coverage | |
run: ./gradlew codeCoverageReport | |
- name: Send code coverage report to Codecov.io | |
uses: codecov/codecov-action@125fc84a9a348dbcf27191600683ec096ec9021c # v4.4.1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
docs: | |
name: Docs test build | |
runs-on: ubuntu-latest | |
steps: | |
# Get GitHub token via the CT SDKs App | |
- name: Generate GitHub token (via CT SDKs App) | |
id: generate_github_token | |
uses: actions/create-github-app-token@a0de6af83968303c8c955486bf9739a57d23c7f1 # v1 | |
with: | |
app-id: ${{ secrets.CT_SDKS_APP_ID }} | |
private-key: ${{ secrets.CT_SDKS_APP_PEM }} | |
- name: Checkout | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
with: | |
token: ${{ steps.generate_github_token.outputs.token }} | |
- uses: gradle/wrapper-validation-action@216d1ad2b3710bf005dc39237337b9673fd8fcd5 # v3.3.2 | |
- name: Setup Java | |
uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4 | |
with: | |
distribution: 'temurin' | |
java-version: '17' | |
- name: Setup Graphviz | |
uses: ts-graphviz/setup-graphviz@b1de5da23ed0a6d14e0aeee8ed52fdd87af2363c # v2.0.2 | |
- name: build javadoc | |
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main' | |
run: ./gradlew alljavadoc | |
dependency-submission: | |
runs-on: ubuntu-latest | |
steps: | |
# Get GitHub token via the CT SDKs App | |
- name: Generate GitHub token (via CT SDKs App) | |
id: generate_github_token | |
uses: actions/create-github-app-token@a0de6af83968303c8c955486bf9739a57d23c7f1 # v1 | |
with: | |
app-id: ${{ secrets.CT_SDKS_APP_ID }} | |
private-key: ${{ secrets.CT_SDKS_APP_PEM }} | |
- name: Checkout sources | |
uses: actions/checkout@a5ac7e51b41094c92402da3b24376905380afc29 # v4 | |
- name: Generate and submit dependency graph | |
if: github.event_name == 'workflow_dispatch' || github.event_name == 'push' && github.ref == 'refs/heads/main' | |
uses: gradle/actions/dependency-submission@db19848a5fa7950289d3668fb053140cf3028d43 # v3.3.2 | |
with: | |
github-token: ${{ steps.generate_github_token.outputs.token }} |