From 14f244b9ffff2b14b4da4c07cff9deea8ca72253 Mon Sep 17 00:00:00 2001 From: Marco Carrozzo Date: Tue, 17 Jan 2023 16:41:02 +0100 Subject: [PATCH] change cache strategy --- .../download-cache-and-artifacts/action.yml | 10 ++- .github/actions/setup/action.yml | 16 ++--- .../upload-cache-and-artifacts/action.yml | 9 ++- .github/workflows/devel.yml | 63 +++++++++++++++++++ .github/workflows/pull-request.yml | 24 ++++++- 5 files changed, 108 insertions(+), 14 deletions(-) create mode 100644 .github/workflows/devel.yml diff --git a/.github/actions/download-cache-and-artifacts/action.yml b/.github/actions/download-cache-and-artifacts/action.yml index a61404aa3a..3c3b170fee 100644 --- a/.github/actions/download-cache-and-artifacts/action.yml +++ b/.github/actions/download-cache-and-artifacts/action.yml @@ -1,5 +1,13 @@ name: "Download build artifacts" description: "Download build artifacts" + +inputs: + packages: + description: 'packages to cache' + required: false + type: string + default: 'dist nxcache' + runs: using: "composite" steps: @@ -8,7 +16,7 @@ runs: env: REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}" run: | - packages=( dist nxcache node_modules ) + packages=( $(echo ${{ inputs.packages }}) ) for i in "${packages[@]}"; do time aws s3 cp --no-progress s3://${S3_BUILD_BUCKET_SHORT_NAME}/${REMOTE_PATH}/$i.tar.gz $i.tar.gz du -h $i.tar.gz diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 5652ccf7c6..30441b8caf 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -36,23 +36,23 @@ runs: cache-name: node-cache with: path: | - ~/.npm nxcache - dist - key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ steps.tag-sha.outputs.tag_sha }} + key: nxcache-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ steps.tag-sha.outputs.tag_sha }} restore-keys: | - node-${{ runner.os }}-build-${{ env.cache-name }}- - node-${{ runner.os }}-build- - node-${{ runner.os }}- + nxcache-${{ runner.os }}-build-${{ env.cache-name }}- + nxcache-${{ runner.os }}-build- + nxcache-${{ runner.os }}- - name: Node Modules cache - id: node-modules-cache + id: node-modules-dist-cache if: ${{ inputs.enable-node-modules-cache == 'true' }} uses: actions/cache@v3 env: - cache-name: node-modules-cache + cache-name: node-modules-dist-cache with: path: | node_modules + ~/.npm + dist key: .npm-${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}-${{ steps.tag-sha.outputs.tag_sha }} restore-keys: | node_modules-${{ runner.os }}-build-${{ env.cache-name }}- diff --git a/.github/actions/upload-cache-and-artifacts/action.yml b/.github/actions/upload-cache-and-artifacts/action.yml index a6c769bdf6..33af6b661d 100644 --- a/.github/actions/upload-cache-and-artifacts/action.yml +++ b/.github/actions/upload-cache-and-artifacts/action.yml @@ -1,6 +1,11 @@ name: "Upload build artifacts" description: "Upload build artifacts" - +inputs: + packages: + description: 'packages to cache' + required: false + type: boolean + default: 'dist nxcache' runs: using: "composite" steps: @@ -9,7 +14,7 @@ runs: env: REMOTE_PATH: "alfresco-ng2-components/build-cache/${{ github.run_id }}" run: | - packages=( dist nxcache node_modules ) + packages=( $(echo ${{ inputs.packages }}) ) for i in "${packages[@]}"; do time tar czf $i.tar.gz $i du -h $i.tar.gz diff --git a/.github/workflows/devel.yml b/.github/workflows/devel.yml new file mode 100644 index 0000000000..43d9286705 --- /dev/null +++ b/.github/workflows/devel.yml @@ -0,0 +1,63 @@ +name: "devel" + +on: + push: + branches: + - AAE-12190* + +env: + BASE_REF: ${{ github.base_ref }} + HEAD_REF: ${{ github.head_ref }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + GITHUB_BRANCH: ${{ github.ref_name }} + TRAVIS_BUILD_DIR: ${{ github.workspace }} + TRAVIS_COMMIT: ${{ github.sha }} + BUILD_ID: ${{ github.run_id }} + TRAVIS_RUN_NUMBER: ${{ github.run_attempt }} + TRAVIS_BUILD_NUMBER: ${{ github.run_id }} + JOB_ID: ${{ github.run_id }} + PROXY_HOST_BPM: ${{ secrets.E2E_HOST }} + E2E_HOST_APA: ${{ secrets.E2E_HOST_APA }} + E2E_HOST: ${{ secrets.E2E_HOST }} + E2E_USERNAME: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }} + E2E_PASSWORD: ${{ secrets.E2E_PASSWORD }} + E2E_ADMIN_EMAIL_IDENTITY: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }} + E2E_ADMIN_PASSWORD_IDENTITY: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }} + USERNAME_ADF: ${{ secrets.E2E_USERNAME }} + PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }} + URL_HOST_ADF: ${{ secrets.URL_HOST_ADF }} + IDENTITY_ADMIN_EMAIL: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }} + IDENTITY_ADMIN_PASSWORD: ${{ secrets.E2E_ADMIN_PASSWORD_IDENTITY }} + AWS_S3_BUCKET_ACTIVITI_LICENSE: ${{ secrets.AWS_S3_BUCKET_ACTIVITI_LICENSE }} + HOST_SSO: ${{ secrets.HOST_SSO }} + LOG_LEVEL: "ERROR" + E2E_LOG_LEVEL: "ERROR" + E2E_MODELER_USERNAME: ${{ secrets.E2E_MODELER_USERNAME }} + E2E_MODELER_PASSWORD: ${{ secrets.E2E_MODELER_PASSWORD }} + EXTERNAL_ACS_HOST: ${{ secrets.EXTERNAL_ACS_HOST }} + E2E_DEVOPS_USERNAME: ${{ secrets.E2E_DEVOPS_USERNAME }} + E2E_DEVOPS_PASSWORD: ${{ secrets.E2E_DEVOPS_PASSWORD }} + USERNAME_SUPER_ADMIN_ADF: ${{ secrets.USERNAME_SUPER_ADMIN_ADF }} + PASSWORD_SUPER_ADMIN_ADF: ${{ secrets.PASSWORD_SUPER_ADMIN_ADF }} + HR_USER: ${{ secrets.HR_USER }} + HR_USER_PASSWORD: ${{ secrets.HR_USER_PASSWORD }} + SMART_RUNNER_PATH: ".protractor-smartrunner" + S3_DBP_PATH: ${{ secrets.S3_DBP_PATH }} + S3_BUILD_BUCKET: ${{ secrets.S3_BUILD_BUCKET }} + S3_BUILD_BUCKET_SHORT_NAME: ${{ secrets.S3_BUILD_BUCKET_SHORT_NAME }} + NODE_OPTIONS: "--max-old-space-size=5120" + DOCKER_REPOSITORY_DOMAIN: ${{ secrets.DOCKER_REPOSITORY_DOMAIN }} + DOCKER_REPOSITORY_USER: ${{ secrets.DOCKER_REPOSITORY_USER }} + DOCKER_REPOSITORY_PASSWORD: ${{ secrets.DOCKER_REPOSITORY_PASSWORD }} + DOCKER_REPOSITORY_STORYBOOK: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/storybook" + DOCKER_REPOSITORY: "${{ secrets.DOCKER_REPOSITORY_DOMAIN }}/alfresco/demo-shell" + +jobs: + devel: + uses: ./.github/workflows/pull-request.yml + secrets: inherit + with: + dry-run-release: true + skip-pr-approve: true + diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index 5be49dbf96..cf60d31256 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -7,7 +7,12 @@ on: description: 'enable dry-run on artifact push' required: false type: boolean - default: true + default: true + skip-pr-approve: + description: 'skip pr approve check' + required: false + type: boolean + default: false pull_request: types: [opened, synchronize, reopened] branches: @@ -83,7 +88,7 @@ jobs: - name: Show the number env: GH_TOKEN: ${{ github.token }} - DEVEL_FLAG: false #put it to true if you need to develop the pipeline on your own branch. before the final merge put it to false + DEVEL_FLAG: ${{ inputs.skip-pr-approve }} #put it to true if you need to develop the pipeline on your own branch. before the final merge put it to false shell: bash if: ${{ github.event_name != 'schedule' }} run: | @@ -120,6 +125,8 @@ jobs: nx run testing:bundle - run: nx print-affected $NX_CALCULATION_FLAGS - uses: ./.github/actions/upload-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' unit-tests: timeout-minutes: 30 @@ -146,6 +153,8 @@ jobs: fetch-depth: 0 # Fetch all history for all tags and branches - uses: ./.github/actions/setup - uses: ./.github/actions/download-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' - name: Run unit tests run: | /usr/bin/xvfb-run --auto-servernum nx affected:test $NX_CALCULATION_FLAGS --exclude=${{ matrix.unit-tests.exclude }} @@ -163,6 +172,8 @@ jobs: fetch-depth: 0 # Fetch all history for all tags and branches - uses: ./.github/actions/setup - uses: ./.github/actions/download-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' - run: nx affected --target=lint $NX_CALCULATION_FLAGS build-libs: @@ -178,11 +189,15 @@ jobs: fetch-depth: 0 # Fetch all history for all tags and branches - uses: ./.github/actions/setup - uses: ./.github/actions/download-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' - run: nx affected:build $NX_CALCULATION_FLAGS --prod - run: nx build demoshell --configuration production - run: rm -f /home/runner/work/alfresco-ng2-components/alfresco-ng2-components/node_modules/.ngcc_lock_file - run: nx affected --target=build-storybook $NX_CALCULATION_FLAGS --configuration ci - uses: ./.github/actions/upload-cache-and-artifacts + with: + packages: 'nxcache' e2e-storybook: timeout-minutes: 20 @@ -196,12 +211,13 @@ jobs: fetch-depth: 0 # Fetch all history for all - uses: ./.github/actions/setup - uses: ./.github/actions/download-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' - name: Process Cloud Storybook Playwright run: | npx playwright install chromium sudo sysctl -w fs.inotify.max_user_watches=524288 npx nx affected --target=e2e-playwright $NX_CALCULATION_FLAGS || exit 1 - - uses: ./.github/actions/upload-cache-and-artifacts e2e: timeout-minutes: 90 @@ -335,6 +351,8 @@ jobs: enable-cache: "true" enable-node-modules-cache: "true" - uses: ./.github/actions/download-cache-and-artifacts + with: + packages: 'dist nxcache node_modules' - name: setup chrome uses: ./.github/actions/setup-chrome - name: e2e