diff --git a/.github/workflows/a11y.yaml b/.github/workflows/a11y.yaml index 91736ea90a..e69de29bb2 100644 --- a/.github/workflows/a11y.yaml +++ b/.github/workflows/a11y.yaml @@ -1,79 +0,0 @@ -name: A11y - -on: - pull_request: - branches: - - maintenance-3.1.x - workflow_call: - inputs: - branch: - description: 'The current branch' - default: maintenance-3.1.x - type: string - required: false - secrets: - NPM_PACKAGES_TOKEN: - description: 'NPM_PACKAGES_TOKEN' - required: true - PACKAGES_AUTH_USER: - description: 'PACKAGES_AUTH_USER' - required: true - PACKAGES_AUTH_TOKEN: - description: 'PACKAGES_AUTH_TOKEN' - required: true - -env: - REFERENCE_BRANCH: maintenance-3.1.x - NPM_REPOSITORY: https://packages.nuxeo.com/repository/npm-public/ - BRANCH_NAME: ${{ github.head_ref || inputs.branch || 'maintenance-3.1.x' }} - -jobs: - a11y: - runs-on: [self-hosted, master] - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ env.BRANCH_NAME }} - - - run: git config user.name "nuxeo-webui-jx-bot" && git config user.email "webui@hyland.com" - - - uses: actions/setup-node@v3 - with: - registry-url: ${{ env.NPM_REPOSITORY }} - node-version: 18 - scope: '@nuxeo' - - - name: Install Web UI - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_PACKAGES_TOKEN }} - run: | - npm install - pushd packages/nuxeo-web-ui-ftest - npm install - popd - pushd packages/nuxeo-designer-catalog - npm install - popd - - - uses: actions/setup-java@v2 - with: - distribution: 'zulu' - java-version: '17' - - - name: 'Update settings.xml with server configuration' - run: | - echo ' - - - maven-internal - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - ' > ~/.m2/settings.xml - - - name: Web UI build - run: mvn -B -ntp install - - - name: A11y checks - run: mvn -B -ntp -f plugin/a11y install diff --git a/.github/workflows/catalog.yaml b/.github/workflows/catalog.yaml index ac4108bd55..e69de29bb2 100644 --- a/.github/workflows/catalog.yaml +++ b/.github/workflows/catalog.yaml @@ -1,155 +0,0 @@ -# This workflow generates a new version of the catalog used by Nuxeo Studio Designer. -# Note: some Catalog dependencies require Node 10.x to work. -name: Designer Catalog Generator - -on: - workflow_dispatch: - inputs: - target_platform: - description: 'The Nuxeo server target platform to build the catalog for.' - default: '2023.0' - required: true - branch_name: - description: 'The name of the Nuxeo Web UI branch to generate the catalog for.' - default: 'maintenance-3.1.x' - required: true - classifier: - description: 'Classifier to name a custom version of the catalog (used for testing purposes).' - default: '' - required: false - - release: - types: [published] - -env: - ARTIFACT_ID: view-designer-catalog - GROUP_ID: org.nuxeo.web.ui.studio - -jobs: - catalog: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - - run: git config --global user.name "nuxeo-webui-jx-bot" && git config --global user.email "webui@hyland.com" - - - uses: actions/setup-node@v3 - with: - node-version: 14 - - - uses: actions/setup-java@v3 - with: - distribution: 'zulu' - java-version: '17' - - - name: 'Update settings.xml with server configuration' - run: | - echo ' - - - maven-internal - external:* - https://packages.nuxeo.com/repository/maven-internal/ - - - - - nos-team - nuxeo-webui-jx-bot - ${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }} - - - maven-internal - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - maven-public-releases - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - maven-public-snapshots - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - ' > ~/.m2/settings.xml - - - name: Install libxml2-utils (xmllint) - run: sudo apt-get update && sudo apt-get install -y libxml2-utils - - - name: Setup parameters (release) - if: github.event_name == 'release' - working-directory: packages/nuxeo-designer-catalog - run: | - echo "BRANCH_NAME=v${GITHUB_HEAD_REF##*/}" >> $GITHUB_ENV - echo "TARGET_PLATFORM=2023.0" >> $GITHUB_ENV - - - name: Setup parameters (workflow_dispatch) - if: github.event_name == 'workflow_dispatch' - run: | - echo "BRANCH_NAME=${{ github.event.inputs.branch_name }}" >> $GITHUB_ENV - echo "TARGET_PLATFORM=${{ github.event.inputs.target_platform }}" >> $GITHUB_ENV - - - name: Install dependencies - working-directory: packages/nuxeo-designer-catalog - run: | - npm install - npm install -g gulp - - - name: Generate catalog - working-directory: packages/nuxeo-designer-catalog - run: | - gulp catalog --tp $TARGET_PLATFORM --webui-branch $BRANCH_NAME - gulp hints --tp $TARGET_PLATFORM - - - name: Bundle the catalog - run: | - sudo chmod +r pom.xml - CATALOG_VERSION=$(xmllint --xpath "//*[local-name()='project']/*[local-name()='version']/text()" pom.xml)${{ github.event.inputs.classifier }} - pushd packages/nuxeo-designer-catalog/data/applications/nuxeo/${{ env.TARGET_PLATFORM }} - echo "CATALOG_VERSION=$CATALOG_VERSION" >> $GITHUB_ENV - CATALOG_NAME=$ARTIFACT_ID-$CATALOG_VERSION.zip - echo "CATALOG_NAME=$CATALOG_NAME" >> $GITHUB_ENV - zip -q -r $CATALOG_NAME nuxeo-web-ui data hints catalog.json - popd - - - name: Archive catalog - uses: actions/upload-artifact@v3 - with: - name: catalog - path: packages/nuxeo-designer-catalog/data/applications/nuxeo/${{ env.TARGET_PLATFORM }}/${{ env.CATALOG_NAME }} - - - name: Upload catalog - working-directory: packages/nuxeo-designer-catalog - run: | - MVN_REPO_ID=maven-public-releases - MVN_REPO_URL=https://packages.nuxeo.com/repository/maven-public-releases/ - if [[ $CATALOG_VERSION == *-SNAPSHOT ]]; then - MVN_REPO_ID=maven-public-snapshots - MVN_REPO_URL=https://packages.nuxeo.com/repository/maven-public-snapshots/ - fi - - pushd data/applications/nuxeo/$TARGET_PLATFORM - mvn deploy:deploy-file -Dfile=$CATALOG_NAME -DgroupId=$GROUP_ID -DartifactId=$ARTIFACT_ID -Dversion=$CATALOG_VERSION -Dpackaging=zip -DrepositoryId=$MVN_REPO_ID -Durl=$MVN_REPO_URL - popd - - - name: Checkout NOS repository - uses: actions/checkout@v3 - with: - repository: nuxeo/nos - token: ${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }} - path: nos - - - name: Create pull request for catalog update in NOS - working-directory: nos - env: - GH_TOKEN: ${{ secrets.WEBUI_JX_BOT_GITHUB_ACTIONS_TOKEN }} - run: | - git checkout -b designer-catalog-update-$CATALOG_VERSION - mvn versions:set-property -Dproperty=view.designer.catalog.2023.0 -DnewVersion=$CATALOG_VERSION - git add . - git commit -m "Update Designer catalog with version $CATALOG_VERSION" - git push origin designer-catalog-update-$CATALOG_VERSION - gh pr create --base master --fill \ No newline at end of file diff --git a/.github/workflows/ftest.yaml b/.github/workflows/ftest.yaml index 5553bbde74..e69de29bb2 100644 --- a/.github/workflows/ftest.yaml +++ b/.github/workflows/ftest.yaml @@ -1,165 +0,0 @@ -name: Functional tests - -on: - pull_request: - branches: - - maintenance-3.1.x - workflow_call: - inputs: - branch: - description: 'The current branch' - default: maintenance-3.1.x - type: string - required: false - secrets: - NPM_PACKAGES_TOKEN: - description: 'NPM_PACKAGES_TOKEN' - required: true - PACKAGES_AUTH_USER: - description: 'PACKAGES_AUTH_USER' - required: true - PACKAGES_AUTH_TOKEN: - description: 'PACKAGES_AUTH_TOKEN' - required: true - -env: - REFERENCE_BRANCH: maintenance-3.1.x - NPM_REPOSITORY: https://packages.nuxeo.com/repository/npm-public/ - BRANCH_NAME: ${{ github.head_ref || inputs.branch || 'maintenance-3.1.x' }} - -jobs: - ftests: - runs-on: [ self-hosted, master ] - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ env.BRANCH_NAME }} - - - uses: actions/setup-node@v3 - with: - registry-url: ${{ env.NPM_REPOSITORY }} - scope: '@nuxeo' - node-version: 18 - - - uses: actions/setup-java@v2 - with: - distribution: 'zulu' - java-version: '17' - - - name: Determine nuxeo-elements branch to link - id: pick_nuxeo_elements_branch - run: | - if git ls-remote --exit-code --heads https://github.com/nuxeo/nuxeo-elements ${{ env.BRANCH_NAME }}; then - echo ::set-output name=branch::${{ env.BRANCH_NAME }} - else - echo ::set-output name=branch::${{ env.REFERENCE_BRANCH }} - fi - - - name: Install Web UI - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_PACKAGES_TOKEN }} - run: | - npm install - pushd packages/nuxeo-web-ui-ftest - npm install - popd - pushd packages/nuxeo-designer-catalog - npm install - popd - - - name: Checkout the nuxeo-elements repo - uses: actions/checkout@v2 - with: - repository: nuxeo/nuxeo-elements - path: nuxeo-elements - fetch-depth: 1 - ref: ${{ steps.pick_nuxeo_elements_branch.outputs.branch }} - - - name: Pack Elements modules - run: | - pushd nuxeo-elements - pushd core - echo "ELEMENTS_CORE=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - - pushd ui - echo "ELEMENTS_UI=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - - pushd dataviz - echo "ELEMENTS_DATAVIZ=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - - pushd testing-helpers - echo "ELEMENTS_HELPERS=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - popd - - - name: Add .npmrc - run: | - pushd /tmp/_temp/ - rm .npmrc - touch .npmrc - popd - echo ' - packages.nuxeo.com/repository/npm-public/:_auth=${NODE_AUTH_TOKEN} - @nuxeo:registry=https://packages.nuxeo.com/repository/npm-public/ - always-auth=true - ' >> /tmp/_temp/.npmrc - - - name: Link elements to Web UI - run: | - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/core/${ELEMENTS_CORE} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/ui/${ELEMENTS_UI} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/dataviz/${ELEMENTS_DATAVIZ} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/testing-helpers/${ELEMENTS_HELPERS} - - - name: 'Update settings.xml with server configuration' - run: | - echo ' - - - maven-internal - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - ' > ~/.m2/settings.xml - - - name: Functional tests - env: - RUN_ALL: false - BAIL: 0 - run: mvn -ntp install -Pftest -DskipInstall - - - name: Archive cucumber reports - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: cucumber-reports - path: ftest/target/cucumber-reports/ - - - name: Archive screenshots - if: ${{ failure() }} - uses: actions/upload-artifact@v2 - with: - name: screenshots - path: ftest/target/screenshots/ - - - name: Archive logs - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: logs - path: | - **/log/*.log - **/nxserver/config/distribution.properties - - - name: Archive packages - if: ${{ always() }} - uses: actions/upload-artifact@v2 - with: - name: packages - path: | - plugin/web-ui/marketplace/target/nuxeo-web-ui-marketplace-*.zip - plugin/itests/marketplace/target/nuxeo-web-ui-marketplace-itests-*.zip \ No newline at end of file diff --git a/.github/workflows/lint.yaml b/.github/workflows/lint.yaml index d8be124e3d..e69de29bb2 100644 --- a/.github/workflows/lint.yaml +++ b/.github/workflows/lint.yaml @@ -1,42 +0,0 @@ -name: Lint - -on: - pull_request: - branches: - - maintenance-3.1.x - workflow_call: - inputs: - branch: - description: 'The current branch' - default: maintenance-3.1.x - type: string - required: false - secrets: - NPM_PACKAGES_TOKEN: - description: 'NPM_PACKAGES_TOKEN' - required: true - -env: - BRANCH_NAME: ${{ github.head_ref || inputs.branch || 'maintenance-3.1.x' }} - -jobs: - lint: - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - with: - ref: ${{ env.BRANCH_NAME }} - - - uses: actions/setup-node@v3 - with: - registry-url: 'https://packages.nuxeo.com/repository/npm-public/' - node-version: 18 - scope: '@nuxeo' - - - name: Install - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} - run: npm install - - - name: Lint - run: npm run lint \ No newline at end of file diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index ced880db73..2776a629db 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -25,6 +25,9 @@ env: jobs: unit-test: runs-on: [ self-hosted, master ] + concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || inputs.branch || 'maintenance-3.1.x' }} + cancel-in-progress: true steps: - uses: actions/checkout@v2 with: diff --git a/.github/workflows/veracode.yml b/.github/workflows/veracode.yml index 149fbf4f9f..e69de29bb2 100644 --- a/.github/workflows/veracode.yml +++ b/.github/workflows/veracode.yml @@ -1,193 +0,0 @@ -# This workflow uses actions that are not certified by GitHub. -# They are provided by a third-party and are governed by -# separate terms of service, privacy policy, and support -# documentation. - -# This workflow will initiate a Veracode Static Analysis Pipeline scan, return a results.json and convert to SARIF for upload as a code scanning alert - -name: Veracode - -on: - pull_request: - # The branches below must be a subset of the branches above - branches: [ "maintenance-3.1.x" ] - schedule: - # At 01:00 on Sunday - - cron: '0 1 * * SUN' - workflow_call: - inputs: - branch: - description: 'The branch to Analyze' - type: string - required: true - secrets: - NPM_PACKAGES_TOKEN: - description: 'NPM_PACKAGES_TOKEN' - required: true - PACKAGES_AUTH_USER: - description: 'PACKAGES_AUTH_USER' - required: true - PACKAGES_AUTH_TOKEN: - description: 'PACKAGES_AUTH_TOKEN' - required: true - VERACODE_API_ID: - description: 'VERACODE_API_ID' - required: true - VERACODE_API_KEY: - description: 'VERACODE_API_KEY' - required: true - -env: - REFERENCE_BRANCH: maintenance-3.1.x - NPM_REPOSITORY: https://packages.nuxeo.com/repository/npm-public/ - BRANCH_NAME: ${{ github.head_ref || inputs.branch || 'maintenance-3.1.x' }} - -# A workflow run is made up of one or more jobs that can run sequentially or in parallel -permissions: - contents: read - -jobs: - # This workflow contains a job to build and submit pipeline scan, you will need to customize the build process accordingly and make sure the artifact you build is used as the file input to the pipeline scan file parameter - sast-scan: - # The type of runner that the job will run on - permissions: - contents: read # for actions/checkout to fetch code - security-events: write # for github/codeql-action/upload-sarif to upload SARIF results - actions: read # only required for a private repository by github/codeql-action/upload-sarif to get the Action run status - runs-on: ubuntu-latest - steps: - - # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it and copies all sources into ZIP file for submitting for analysis. Replace this section with your applications build steps - - uses: actions/checkout@v2 - with: - ref: ${{ env.BRANCH_NAME }} - - - uses: actions/setup-node@v1 - with: - registry-url: ${{ env.NPM_REPOSITORY }} - node-version: 14 - scope: '@nuxeo' - - - uses: actions/setup-java@v2 - with: - distribution: 'zulu' - java-version: '17' - - - name: Determine nuxeo-elements branch to link - id: pick_nuxeo_elements_branch - run: | - if git ls-remote --exit-code --heads https://github.com/nuxeo/nuxeo-elements ${{ env.BRANCH_NAME }}; then - echo ::set-output name=branch::${{ env.BRANCH_NAME }} - else - echo ::set-output name=branch::${{ env.REFERENCE_BRANCH }} - fi - - name: Install Web UI - env: - NODE_AUTH_TOKEN: ${{ secrets.NPM_PACKAGES_TOKEN }} - run: | - npm install - pushd packages/nuxeo-web-ui-ftest - npm install - popd - - name: Checkout the nuxeo-elements repo - uses: actions/checkout@v2 - with: - repository: nuxeo/nuxeo-elements - path: nuxeo-elements - fetch-depth: 1 - ref: ${{ steps.pick_nuxeo_elements_branch.outputs.branch }} - - - name: Pack Elements modules - run: | - pushd nuxeo-elements - pushd core - echo "ELEMENTS_CORE=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - pushd ui - echo "ELEMENTS_UI=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - pushd dataviz - echo "ELEMENTS_DATAVIZ=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - pushd testing-helpers - echo "ELEMENTS_HELPERS=$(npm pack 2>&1 | tail -1)" >> $GITHUB_ENV - popd - popd - - name: Link elements to Web UI - run: | - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/core/${ELEMENTS_CORE} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/ui/${ELEMENTS_UI} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/dataviz/${ELEMENTS_DATAVIZ} - npm install --no-package-lock --@nuxeo:registry="${{ env.NPM_REPOSITORY }}" nuxeo-elements/testing-helpers/${ELEMENTS_HELPERS} - - name: 'Update settings.xml with server configuration' - run: | - echo ' - - - maven-internal - ${{ secrets.PACKAGES_AUTH_USER }} - ${{ secrets.PACKAGES_AUTH_TOKEN }} - - - ' > ~/.m2/settings.xml - - name: Nuxeo package build - run: mvn install -DskipInstall - - name: Archive packages - uses: actions/upload-artifact@v2 - with: - name: packages - path: | - plugin/web-ui/marketplace/target/nuxeo-web-ui-marketplace-*.zip - - # download the Veracode Static Analysis Pipeline scan jar - - run: curl --silent --show-error --fail -O https://downloads.veracode.com/securityscan/pipeline-scan-LATEST.zip - - run: unzip -o pipeline-scan-LATEST.zip - - name: Code Scanning - id: code_scanning - run: java -jar pipeline-scan.jar --veracode_api_id "${{secrets.VERACODE_API_ID}}" --veracode_api_key "${{secrets.VERACODE_API_KEY}}" --fail_on_severity="Very High, High" --summary_output=true --file plugin/web-ui/marketplace/target/nuxeo-web-ui-marketplace-*.zip - continue-on-error: true - - name: Convert pipeline scan output to SARIF format - id: convert - uses: Veracode/veracode-pipeline-scan-results-to-sarif@v1.0.5 - with: - pipeline-results-json: results.json - output-results-sarif: veracode-results.sarif - finding-rule-level: "4:3:0" - - name: Upload SARIF file to repository - uses: github/codeql-action/upload-sarif@v2 - with: - # Path to SARIF file relative to the root of the repository - sarif_file: veracode-results.sarif - - name: Slack notification - if: (github.event_name == 'pull_request' || github.event_name == 'schedule') - uses: slackapi/slack-github-action@v1.23.0 - env: - REPO_URL: ${{ github.server_url }}/${{ github.repository }} - SLACK_BOT_TOKEN: ${{ secrets.SLACK_BOT_TOKEN }} - SLACK_CHANNEL_ID: ${{ secrets.SLACK_CHANNEL_ID }} - with: - channel-id: ${{ env.SLACK_CHANNEL_ID }} - payload: | - { - "text": "<${{ env.REPO_URL }}/actions/runs/${{ github.run_id }}|Code scanning> ${{ steps.code_scanning.outcome }} in nuxeo/nuxeo-web-ui <${{ env.REPO_URL }}/commit/${{ github.sha }}|${{ github.ref_name }}>", - "blocks": [ - { - "type": "section", - "text": { - "type": "mrkdwn", - "text": "<${{ env.REPO_URL }}/actions/runs/${{ github.run_id }}|Code scanning> ${{ job.status }} in nuxeo/nuxeo-WEB-UI <${{ env.REPO_URL }}/commit/${{ github.sha }}|${{ github.ref_name }}>" - } - } - ] - } - - name: Send scan result summary to slack - uses: crederauk/slack-workflow-summary@v1.2.2 - with: - github-token: ${{ secrets.GITHUB_TOKEN }} - slack-webhook-url: ${{ secrets.SLACK_WEBHOOK_URL }} - - name: Send scan result file to slack - uses: adrey/slack-file-upload-action@master - with: - token: ${{ secrets.SLACK_BOT_TOKEN }} - path: results.txt - channel: ${{ secrets.SLACK_CHANNEL_ID }} \ No newline at end of file diff --git a/elements/diff/elements/nuxeo-blob-diff.html b/elements/diff/elements/nuxeo-blob-diff.html index 491e29fb06..2198e30307 100644 --- a/elements/diff/elements/nuxeo-blob-diff.html +++ b/elements/diff/elements/nuxeo-blob-diff.html @@ -19,7 +19,7 @@