From bb3000346f17024a96e464fb804502cf051da363 Mon Sep 17 00:00:00 2001 From: Eugenio Romano Date: Thu, 31 Aug 2023 10:25:12 +0200 Subject: [PATCH] release branch workflow (#8865) --- .github/workflows/release-branch.yml | 168 +++++++++++++++++++++++++++ 1 file changed, 168 insertions(+) create mode 100644 .github/workflows/release-branch.yml diff --git a/.github/workflows/release-branch.yml b/.github/workflows/release-branch.yml new file mode 100644 index 0000000000..3df243349d --- /dev/null +++ b/.github/workflows/release-branch.yml @@ -0,0 +1,168 @@ +name: Release lib on branch +run-name: Release lib on branch ${{ github.ref_name }} + +on: + workflow_dispatch: + inputs: + dry-run-flag: + description: 'enable dry-run on artifact push' + required: false + type: boolean + default: true + +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 }} + GH_BUILD_DIR: ${{ github.workspace }} + GH_COMMIT: ${{ github.sha }} + BUILD_ID: ${{ github.run_id }} + GH_RUN_NUMBER: ${{ github.run_attempt }} + GH_BUILD_NUMBER: ${{ github.run_id }} + JOB_ID: ${{ github.run_id }} + PROXY_HOST_BPM: ${{ secrets.E2E_HOST }} + E2E_IDENTITY_HOST_APA: ${{ secrets.E2E_IDENTITY_HOST_APA }} + 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 }} + USERNAME_ADF: ${{ secrets.E2E_ADMIN_EMAIL_IDENTITY }} + PASSWORD_ADF: ${{ secrets.E2E_PASSWORD }} + URL_HOST_ADF: "http://localhost:4200" + 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_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" + GITHUB_TOKEN: ${{ secrets.BOT_GITHUB_TOKEN }} + REPO_OWNER: "Alfresco" + REPO_NAME: "alfresco-ng2-components" + DEMO_SHELL_DIR: "./dist/demo-shell" + STORYBOOK_DIR: "./dist/storybook/stories" + BUILT_LIBS_DIR: "./dist/libs" + NODE_MODULES_DIR: "./node_modules" + SMART_RUNNER_DIRECTORY: ".protractor-smartrunner" + SAVE_SCREENSHOT: true + REDIRECT_URI: / + BROWSER_RUN: false + MAXINSTANCES: 2 + PLAYWRIGHT_WORKERS: 2 + PLAYWRIGHT_STORYBOOK_E2E_HOST: http://localhost + PLAYWRIGHT_STORYBOOK_E2E_PORT: 4400 + +jobs: + setup: + timeout-minutes: 20 + name: "Setup" + runs-on: ubuntu-22.04 + steps: + - name: set TAG_NPM BRANCH + shell: bash + run: | + TAG_NPM="branch" + echo "Set TAG with name: ${TAG_NPM}" + echo "TAG_NPM=${TAG_NPM}" >> $GITHUB_ENV + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: ./.github/actions/setup + with: + enable-cache: false + enable-node-modules-cache: false + - name: install + run: | + npm ci + npx nx run cli:bundle + npx nx run testing:bundle + - uses: ./.github/actions/upload-node-modules-and-artifacts + + release-npm: + needs: [setup] + timeout-minutes: 30 + runs-on: ubuntu-22.04 + permissions: + contents: read + packages: write + steps: + - name: Checkout repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + - uses: ./.github/actions/setup + with: + enable-cache: false + enable-node-modules-cache: false + - id: set-dryrun + uses: ./.github/actions/enable-dryrun + with: + dry-run-flag: ${{ inputs.dry-run-flag }} + - uses: ./.github/actions/download-node-modules-and-artifacts + - name: check PR number + id: action + uses: kamatama41/get-pr-number-action@5c77b38a1b4974ebf8a9521a689f38a5898eadd6 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + - name: save PR number + env: + GH_TOKEN: ${{ github.token }} + shell: bash + run: | + echo "PR_NUMBER=${{ steps.action.outputs.number }}" >> $GITHUB_ENV + - name: build libraries + run: | + set -u; + ./scripts/github/build/bumpversion.sh + npx nx affected:build $NX_CALCULATION_FLAGS --prod --exclude="demoshell" --skip-nx-cache + npx nx affected $NX_CALCULATION_FLAGS --target=pretheme + - uses: actions/setup-node@v3 + name: release libraries GH registry + with: + node-version-file: '.nvmrc' + registry-url: 'https://npm.pkg.github.com' + scope: '@alfresco' + - run: npx nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1 + env: + NODE_AUTH_TOKEN: ${{ secrets.PAT_WRITE_PKG }} + - uses: actions/setup-node@v3 + name: release libraries Npm registry + with: + node-version-file: '.nvmrc' + registry-url: 'https://${{ vars.NPM_REGISTRY_ADDRESS }}' + scope: '@alfresco' + - run: npx nx affected --target=npm-publish $NX_CALCULATION_FLAGS --tag=$TAG_NPM || exit 1 + env: + NODE_AUTH_TOKEN: ${{ secrets.NPM_REGISTRY_TOKEN }} + + npm-check-bundle: + needs: [release-npm] + timeout-minutes: 15 + runs-on: ubuntu-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v3 + - uses: ./.github/actions/npm-check-bundle