update nimbus and lf-api-client-core #281
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: lf-repository-api-client-java-CI | |
| on: | |
| push: | |
| branches: | |
| - v1 | |
| pull_request: | |
| branches: | |
| - v1 | |
| # Allows you to run this workflow manually from the Actions tab | |
| workflow_dispatch: | |
| env: | |
| API_VERSION: 'v1' | |
| VERSION_PREFIX: '2.0.5' | |
| GITHUB_PAGES_BRANCH: 'gh-pages' | |
| jobs: | |
| build-n-test: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 8 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' | |
| distribution: 'temurin' | |
| - name: Build project | |
| run: mvn -B package -Dmaven.test.skip=true --file pom.xml | |
| - name: Run unit tests | |
| run: mvn -Dtest=com.laserfiche.repository.api.unit.** test | |
| - name: Publish unit test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: always() | |
| with: | |
| files: target/surefire-reports/*.xml | |
| check_name: unit-test-results | |
| - name: Delete test reports | |
| run: rm -rf target/surefire-reports/*.xml | |
| - name: Run integration tests against cloud | |
| id: integration-test-cloud | |
| env: | |
| ACCESS_KEY: ${{ secrets.DEV_CA_PUBLIC_USE_INTEGRATION_TEST_ACCESS_KEY }} | |
| SERVICE_PRINCIPAL_KEY: ${{ secrets.DEV_CA_PUBLIC_USE_TESTOAUTHSERVICEPRINCIPAL_SERVICE_PRINCIPAL_KEY }} | |
| REPOSITORY_ID: ${{ secrets.DEV_CA_PUBLIC_USE_REPOSITORY_ID_1 }} | |
| AUTHORIZATION_TYPE: ${{ secrets.AUTHORIZATION_TYPE }} | |
| TEST_HEADER: ${{ secrets.TEST_HEADER }} | |
| run: mvn -Dtest=com.laserfiche.repository.api.integration.** test | |
| - name: Publish cloud test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: always() | |
| with: | |
| files: target/surefire-reports/*.xml | |
| check_name: integration-test-results-cloud | |
| - name: Delete test reports | |
| run: rm -rf target/surefire-reports/*.xml | |
| - name: Run integration tests against self-hosted | |
| id: integration-test-self-hosted | |
| if: always() && (steps.integration-test-cloud.outcome == 'success' || steps.integration-test-cloud.outcome == 'failure') | |
| env: | |
| REPOSITORY_ID: ${{ secrets.APISERVER_REPOSITORY_ID }} | |
| APISERVER_USERNAME: ${{ secrets.APISERVER_USERNAME }} | |
| APISERVER_PASSWORD: ${{ secrets.APISERVER_PASSWORD }} | |
| APISERVER_REPOSITORY_API_BASE_URL: ${{ secrets.APISERVER_REPOSITORY_API_BASE_URL }} | |
| AUTHORIZATION_TYPE: ${{ secrets.APISERVER_AUTHORIZATION_TYPE }} | |
| run: mvn -Dtest=com.laserfiche.repository.api.integration.** test | |
| - name: Publish self-hosted test results | |
| uses: EnricoMi/publish-unit-test-result-action@v2 | |
| if: always() | |
| with: | |
| files: target/surefire-reports/*.xml | |
| check_name: integration-test-results-self-hosted | |
| build-documentation: | |
| runs-on: ubuntu-latest | |
| needs: [build-n-test] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up JDK 8 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' | |
| distribution: 'temurin' | |
| - name: Create temporary directory | |
| run: mkdir -p ./docs_temp/${{ github.ref_name }} | |
| - name: Generate Javadoc | |
| run: mvn javadoc:javadoc | |
| - name: Move javadoc files to temporary directory | |
| run: mv ${{ github.workspace }}/target/site/ ${{ github.workspace }}/docs_temp/${{ github.ref_name }} | |
| - name: Upload a build artifact | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: documentation-artifact | |
| # A file, directory or wildcard pattern that describes what to upload | |
| path: ${{ github.workspace }}/docs_temp/${{ github.ref_name }}/site/apidocs | |
| - name: Delete temporary directory | |
| run: rm -r ./docs_temp | |
| publish-production-package: | |
| runs-on: ubuntu-latest | |
| environment: production | |
| if: ${{ github.run_attempt != 1 }} | |
| needs: [build-n-test, build-documentation] # wait for build to finish | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Set up Maven | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '8' | |
| distribution: 'temurin' | |
| server-id: central | |
| server-username: MAVEN_USERNAME | |
| server-password: MAVEN_PASSWORD | |
| gpg-passphrase: MAVEN_GPG_PASSPHRASE | |
| - name: Import GPG Key | |
| run: | | |
| echo "${{ secrets.MAVEN_GPG_SECRET_KEY }}" | gpg --batch --import | |
| - name: Generate PACKAGE_VERSION | |
| run: echo "PACKAGE_VERSION=${{ env.VERSION_PREFIX }}" >> $GITHUB_ENV | |
| - name: Set version | |
| run: mvn versions:set -DnewVersion=${{ env.PACKAGE_VERSION }} | |
| - name: Publish to Sonatype | |
| run: mvn clean deploy -Pdeploy-to-maven -Dmaven.test.skip=true -Dgpg.passphrase=${{ secrets.MAVEN_GPG_SECRET_KEY_PASSPHRASE }} | |
| env: | |
| MAVEN_USERNAME: ${{ secrets.MAVEN_USERTOKEN_USERNAME }} | |
| MAVEN_PASSWORD: ${{ secrets.MAVEN_USERTOKEN_PASSWORD }} | |
| MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_SECRET_KEY_PASSPHRASE }} | |
| - name: Tag commit | |
| uses: rickstaa/action-create-tag@v1 | |
| with: | |
| tag: ${{ env.API_VERSION }}-${{ env.PACKAGE_VERSION }} | |
| commit_sha: ${{ github.sha }} | |
| message: Workflow run ${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }} | |
| publish-documentation: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| environment: github-pages | |
| needs: [publish-production-package] | |
| steps: | |
| - name: Set DOCUMENTATION_VERSION environment variable | |
| run: | | |
| version_prefix=${{ env.VERSION_PREFIX }} | |
| major_version=${version_prefix%%.*} | |
| documentation_version=$major_version.x | |
| echo $documentation_version | |
| echo DOCUMENTATION_VERSION=$documentation_version >> $GITHUB_ENV | |
| - name: Print DOCUMENTATION_VERSION environment variable | |
| run: | | |
| echo 'Publishing documentation to ${{ env.GITHUB_PAGES_BRANCH }} for ${{ env.API_VERSION }} ${{ env.DOCUMENTATION_VERSION }}.' | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ env.GITHUB_PAGES_BRANCH }} | |
| - name: Delete documentation directory | |
| run: rm -f -r ./docs/${{ env.API_VERSION }}/${{ env.DOCUMENTATION_VERSION }} | |
| - name: Create documentation directory | |
| run: mkdir -p ./docs/${{ env.API_VERSION }}/${{ env.DOCUMENTATION_VERSION }} | |
| - name: Download documentation build artifact | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: documentation-artifact | |
| path: ./docs/${{ env.API_VERSION }}/${{ env.DOCUMENTATION_VERSION }} | |
| - name: Create a pull request | |
| uses: peter-evans/create-pull-request@v4.2.3 | |
| with: | |
| branch: ${{ env.GITHUB_PAGES_BRANCH }}-${{ env.API_VERSION }}-${{ env.DOCUMENTATION_VERSION }}-patch | |
| delete-branch: true | |
| title: 'Automated documentation update for ${{ env.API_VERSION }} ${{ env.DOCUMENTATION_VERSION }} by action ${{ github.run_id }}' | |
| commit-message: 'Automated documentation update for ${{ env.API_VERSION }} ${{ env.DOCUMENTATION_VERSION }} by action ${{ github.run_id }}' | |
| body: 'Automated documentation update for ${{ env.API_VERSION }} ${{ env.DOCUMENTATION_VERSION }} by action ${{ github.run_id }}' | |
| assignees: ${{ github.actor }} |