From 311919956f84ad1d4a027ec4f6608ddf44ad75be Mon Sep 17 00:00:00 2001 From: Xiao Gui <xgui3783@gmail.com> Date: Wed, 14 Aug 2024 12:06:06 +0200 Subject: [PATCH] fix: statistical map --- .github/workflows/_screenshot.yml | 73 ++++++++++++ .github/workflows/docker_img.yml | 182 ++++++++++++++---------------- docs/releases/v2.14.8.md | 9 ++ mkdocs.yml | 1 + package-lock.json | 12 +- package.json | 4 +- 6 files changed, 175 insertions(+), 106 deletions(-) create mode 100644 .github/workflows/_screenshot.yml create mode 100644 docs/releases/v2.14.8.md diff --git a/.github/workflows/_screenshot.yml b/.github/workflows/_screenshot.yml new file mode 100644 index 000000000..146e54d3f --- /dev/null +++ b/.github/workflows/_screenshot.yml @@ -0,0 +1,73 @@ +name: "[e2e] screenshot" +on: + workflow_call: + inputs: + os: + required: false + type: string + default: ubuntu-latest + browser: + required: false + type: string + default: chrome + url: + required: true + type: string + screenshot-filename: + required: true + type: string + description: "desired filename *without* extension. .png will *always* be appended" + secrets: + client-id: + required: false + client-secret: + required: false + +jobs: + screenshot: + runs-on: ${{ inputs.os }} + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 20 + - name: Set variables + run: | + GIT_DIGEST=${{ github.sha }} + GIT_DIGEST=$(echo $GIT_DIGEST | head -c 6) + + echo "mkdir -p $(dirname ${{ inputs.screenshot-filename }})" + mkdir -p $(dirname ${{ inputs.screenshot-filename }}) + + SCREENSHOT_URL=${{ inputs.url }} + SCREENSHOT_PATH=${{ inputs.screenshot-filename }} + + echo "SCREENSHOT_URL: $SCREENSHOT_URL" + echo "SCREENSHOT_PATH: $SCREENSHOT_PATH" + + echo "SCREENSHOT_URL=$SCREENSHOT_URL" >> $GITHUB_ENV + echo "SCREENSHOT_PATH=$SCREENSHOT_PATH" >> $GITHUB_ENV + + - name: Install dependency + run: npm install cypress + + - name: Run Cypress + uses: cypress-io/github-action@v6 + with: + spec: cypress/e2e/screenshot.cy.js + browser: ${{ inputs.browser }} + + - uses: actions/upload-artifact@v4 + with: + name: ${{ env.SCREENSHOT_PATH }} + path: cypress/screenshots/screenshot.cy.js/*.png + retention-days: 5 + + - continue-on-error: true + uses: FZJ-INM1-BDA/iav-dep-test/.github/actions/upload_dataproxy@master + with: + upload-file: cypress/screenshots/screenshot.cy.js/${{ inputs.screenshot-filename }}.png + bucket-name: reference-atlas-data + dest-path: viewere2e/${{ inputs.screenshot-filename }}.png + client-id: ${{ secrets.client-id }} + client-secret: ${{ secrets.client-secret }} diff --git a/.github/workflows/docker_img.yml b/.github/workflows/docker_img.yml index acd0d525a..fbb54a653 100644 --- a/.github/workflows/docker_img.yml +++ b/.github/workflows/docker_img.yml @@ -13,8 +13,51 @@ on: - 'docs/**/*' jobs: + set-vars: + runs-on: ubuntu-latest + outputs: + GIT_DIGEST: ${{ steps.set-vars-step.outputs.GIT_DIGEST }} + BRANCH_NAME: ${{ steps.set-vars-step.outputs.BRANCH_NAME }} + BUILD_TEXT: ${{ steps.set-vars-step.outputs.BUILD_TEXT }} + DEPLOY_ID: ${{ steps.set-vars-step.outputs.DEPLOY_ID }} + SXPLR_VERSION: ${{ steps.set-vars-step.outputs.SXPLR_VERSION }} + steps: + - uses: actions/checkout@v4 + - id: 'set-vars-step' + name: Set variables + run: | + GIT_DIGEST=${{ github.sha }} + echo "Git digest: $GIT_DIGEST" + GIT_DIGEST=$(echo $GIT_DIGEST | grep -oP '^.{6}') + echo "Using first 6 chars of hash: $GIT_DIGEST" + echo "GIT_DIGEST=$GIT_DIGEST" >> $GITHUB_OUTPUT + + echo "Using github.ref: $GITHUB_REF" + + BRANCH_NAME=${GITHUB_REF#refs/heads/} + echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT + + echo "Branch is $BRANCH_NAME ." + + if [[ "$BRANCH_NAME" == 'master' ]] + then + echo "BUILD_TEXT=" >> $GITHUB_OUTPUT + else + echo "BUILD_TEXT=$BRANCH_NAME" >> $GITHUB_OUTPUT + fi + + # DEPLOY_ID == remove _ / and lowercase everything from branch + DEPLOY_ID=$(echo ${BRANCH_NAME//[_\/]/} | awk '{ print tolower($0) }') + echo "DEPLOY_ID=$DEPLOY_ID" >> $GITHUB_OUTPUT + + SXPLR_VERSION=$(jq -r '.version' package.json) + echo "SXPLR_VERSION=$SXPLR_VERSION" + echo "SXPLR_VERSION=$SXPLR_VERSION" >> $GITHUB_OUTPUT + build-docker-img: runs-on: ubuntu-latest + needs: + - set-vars env: MATOMO_ID_PROD: '12' MATOMO_URL_PROD: 'https://stats.humanbrainproject.eu/' @@ -25,9 +68,6 @@ jobs: SIIBRA_API_RC: 'https://siibra-api-rc.apps.hbp.eu/v3_0' SIIBRA_API_LATEST: 'https://siibra-api-latest.apps-dev.hbp.eu/v3_0' - outputs: - GIT_DIGEST: ${{ steps.build-docker-image.outputs.GIT_DIGEST }} - steps: - uses: actions/checkout@v4 with: @@ -65,14 +105,9 @@ jobs: - id: 'build-docker-image' name: 'Build docker image' run: | - GIT_DIGEST=${{ github.sha }} + GIT_DIGEST=${{ needs.set-vars.outputs.GIT_DIGEST }} echo "Git digest: $GIT_DIGEST" - # 62 char limit in label - GIT_DIGEST=$(echo $GIT_DIGEST | grep -oP '^.{6}') - echo "Using first 6 chars of hash: $GIT_DIGEST" - echo "GIT_DIGEST=$GIT_DIGEST" >> $GITHUB_OUTPUT - DOCKER_BUILT_TAG=${{ env.DOCKER_REGISTRY }}siibra-explorer:$BRANCH_NAME echo "Building $DOCKER_BUILT_TAG" docker build \ @@ -106,59 +141,24 @@ jobs: docker tag $DOCKER_BUILT_TAG $VERSIONED_DOCKER_BUILT_TAG docker push $VERSIONED_DOCKER_BUILT_TAG - setting-vars: - if: success() - runs-on: ubuntu-latest - outputs: - BRANCH_NAME: ${{ steps.set-vars.outputs.BRANCH_NAME }} - BUILD_TEXT: ${{ steps.set-vars.outputs.BUILD_TEXT }} - DEPLOY_ID: ${{ steps.set-vars.outputs.DEPLOY_ID }} - SXPLR_VERSION: ${{ steps.set-vars.outputs.SXPLR_VERSION }} - steps: - - uses: actions/checkout@v4 - - id: set-vars - name: Set vars - run: | - echo "Using github.ref: $GITHUB_REF" - - BRANCH_NAME=${GITHUB_REF#refs/heads/} - echo "BRANCH_NAME=$BRANCH_NAME" >> $GITHUB_OUTPUT - - echo "Branch is $BRANCH_NAME ." - - if [[ "$BRANCH_NAME" == 'master' ]] - then - echo "BUILD_TEXT=" >> $GITHUB_OUTPUT - else - echo "BUILD_TEXT=$BRANCH_NAME" >> $GITHUB_OUTPUT - fi - - # DEPLOY_ID == remove _ / and lowercase everything from branch - DEPLOY_ID=$(echo ${BRANCH_NAME//[_\/]/} | awk '{ print tolower($0) }') - echo "DEPLOY_ID=$DEPLOY_ID" >> $GITHUB_OUTPUT - - SXPLR_VERSION=$(jq -r '.version' package.json) - echo "SXPLR_VERSION=$SXPLR_VERSION" - echo "SXPLR_VERSION=$SXPLR_VERSION" >> $GITHUB_OUTPUT - - trigger-deploy-rc-rancher: - if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'staging' && success() }} + if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'staging' && success() }} needs: - build-docker-img - - setting-vars + - set-vars uses: ./.github/workflows/deploy-helm.yml with: DEPLOYMENT_NAME: rc IMAGE_TAG: staging - IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }} + IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }} secrets: KUBECONFIG: ${{ secrets.KUBECONFIG }} - cypress-staging: + cypress-staging-viewer: + needs: - trigger-deploy-rc-rancher - runs-on: ${{ matrix.os }} + - set-vars strategy: fail-fast: false matrix: @@ -174,78 +174,64 @@ jobs: - webkit include: - viewer: ng - url: https://atlases.ebrains.eu/viewer-staging/go/human + saneurl: human - viewer: fsa - url: https://atlases.ebrains.eu/viewer-staging/go/fsaverage + saneurl: fsaverage exclude: - os: ubuntu-latest browser: webkit # - os: windows-latest # browser: webkit + uses: ./.github/workflows/_screenshot.yml + with: + url: https://atlases.ebrains.eu/viewer-staging/go/${{ matrix.saneurl }} + screenshot-filename: ${{ needs.set-vars.outputs.GIT_DIGEST }}/viewer-preview/${{ matrix.viewer }}_${{ matrix.os }}_${{ matrix.browser }} + secrets: + client-id: ${{ secrets.EBRAINS_SIIBRA_EXPLORER_OIDC_CLIENTID}} + client-secret: ${{ secrets.EBRAINS_SIIBRA_EXPLORER_OIDC_CLIENTSECRET}} - steps: - - uses: actions/checkout@v4 - - uses: actions/setup-node@v4 - with: - node-version: 20 - - name: Set variables - run: | - GIT_DIGEST=${{ github.sha }} - GIT_DIGEST=$(echo $GIT_DIGEST | head -c 6) - - SCREENSHOT_URL=${{ matrix.url }} - SCREENSHOT_PATH=screenshot_"$GIT_DIGEST"_${{ matrix.viewer }}_${{ matrix.os }}_${{ matrix.browser }} - - echo "SCREENSHOT_URL: $SCREENSHOT_URL" - echo "SCREENSHOT_PATH: $SCREENSHOT_PATH" - - echo "SCREENSHOT_URL=$SCREENSHOT_URL" >> $GITHUB_ENV - echo "SCREENSHOT_PATH=$SCREENSHOT_PATH" >> $GITHUB_ENV - - - name: Install dependency - run: npm install cypress - - - name: Install optional dependency - if: ${{ matrix.browser == 'webkit' }} - run: | - npm install --save-dev playwright-webkit - echo "USE_SAFARI=1" >> $GITHUB_ENV - - - name: Run Cypress - uses: cypress-io/github-action@v6 - with: - spec: cypress/e2e/screenshot.cy.js - browser: ${{ matrix.browser }} - - - uses: actions/upload-artifact@v4 - with: - name: ${{ env.SCREENSHOT_PATH }} - path: cypress/screenshots/screenshot.cy.js/*.png - retention-days: 5 + cypress-staging-url: + needs: + - trigger-deploy-rc-rancher + - set-vars + strategy: + fail-fast: false + matrix: + saneurl: + - siibra_paper_2023_2A + - siibra_paper_2023_2B + - siibra_paper_2023_2C + - siibra_paper_2023_2D + - siibra_paper_2023_2E + - siibra_paper_2023_2F + uses: ./.github/workflows/_screenshot.yml + with: + url: https://atlases.ebrains.eu/viewer-staging/go/${{ matrix.saneurl }} + screenshot-filename: ${{ needs.set-vars.outputs.GIT_DIGEST }}/url-preview/${{ matrix.saneurl }} trigger-deploy-expmt-rancher: - if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'staging' && success() }} + if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'staging' && success() }} needs: - build-docker-img - - setting-vars + - set-vars uses: ./.github/workflows/deploy-helm.yml with: DEPLOYMENT_NAME: expmt IMAGE_TAG: staging - IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }} + IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }} secrets: KUBECONFIG: ${{ secrets.KUBECONFIG }} trigger-deploy-master-rancher: - if: ${{ needs.setting-vars.outputs.BRANCH_NAME == 'master' && success() }} + if: ${{ needs.set-vars.outputs.BRANCH_NAME == 'master' && success() }} needs: - build-docker-img - - setting-vars + - set-vars uses: ./.github/workflows/deploy-helm.yml with: DEPLOYMENT_NAME: prod - IMAGE_TAG: ${{ needs.setting-vars.outputs.SXPLR_VERSION }} - IMAGE_DIGEST: ${{ needs.build-docker-img.outputs.GIT_DIGEST }} + IMAGE_TAG: ${{ needs.set-vars.outputs.SXPLR_VERSION }} + IMAGE_DIGEST: ${{ needs.set-vars.outputs.GIT_DIGEST }} secrets: KUBECONFIG: ${{ secrets.KUBECONFIG }} diff --git a/docs/releases/v2.14.8.md b/docs/releases/v2.14.8.md new file mode 100644 index 000000000..07aaa2eb2 --- /dev/null +++ b/docs/releases/v2.14.8.md @@ -0,0 +1,9 @@ +# v2.14.8 + +## Bugfix + +- fixed issue of displaying statistical maps + +## Behind the Scenes + +- Minor tweak on e2e screenshots diff --git a/mkdocs.yml b/mkdocs.yml index d1561a776..c4814abb7 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -45,6 +45,7 @@ nav: - Differential gene expression analysis: "advanced/differential_gene_expression_analysis.md" - Release notes: + - v2.14.8: 'releases/v2.14.8.md' - v2.14.7: 'releases/v2.14.7.md' - v2.14.6: 'releases/v2.14.6.md' - v2.14.5: 'releases/v2.14.5.md' diff --git a/package-lock.json b/package-lock.json index 1f5725874..7f9aadb06 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "siibra-explorer", - "version": "2.14.6", + "version": "2.14.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "siibra-explorer", - "version": "2.14.6", + "version": "2.14.7", "license": "apache-2.0", "dependencies": { "@angular/animations": "^15.2.10", @@ -23,7 +23,7 @@ "@ngrx/effects": "^15.4.0", "@ngrx/store": "^15.4.0", "acorn": "^8.4.1", - "export-nehuba": "^0.1.9", + "export-nehuba": "^0.1.10", "file-loader": "^6.2.0", "jszip": "^3.6.0", "postcss": "^8.3.6", @@ -7646,9 +7646,9 @@ "dev": true }, "node_modules/export-nehuba": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.9.tgz", - "integrity": "sha512-59vm+BlB1zuD2ftDWUGUv6Jt0WGHjzB6egGGuD+JRR9oW4D7m9DNuOwheymSvlUxJ2GEOjMBe3I460T51m6W/A==", + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/export-nehuba/-/export-nehuba-0.1.10.tgz", + "integrity": "sha512-CC4KnFtdtfbST4LKVxZO3DQ1p6jkmJHf9PPVaRyUrdD0UAM/Oh1Hita2vdnabsEPkAiJ0UMK1bLZ7KQ+5HLhHQ==", "dependencies": { "pako": "^1.0.6" } diff --git a/package.json b/package.json index 4654168af..356214b9b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "siibra-explorer", - "version": "2.14.7", + "version": "2.14.8", "description": "siibra-explorer - explore brain atlases. Based on humanbrainproject/nehuba & google/neuroglancer. Built with angular", "scripts": { "lint": "eslint src --ext .ts", @@ -52,7 +52,7 @@ "@ngrx/effects": "^15.4.0", "@ngrx/store": "^15.4.0", "acorn": "^8.4.1", - "export-nehuba": "^0.1.9", + "export-nehuba": "^0.1.10", "file-loader": "^6.2.0", "jszip": "^3.6.0", "postcss": "^8.3.6", -- GitLab