From df10f283f2661f88d71fcecc7294570fa3e9c809 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:04:52 +0000 Subject: [PATCH 01/11] ci(nightly): add script for generating nightly builds of ionic --- .github/workflows/nightly.yml | 45 +++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 .github/workflows/nightly.yml diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml new file mode 100644 index 0000000000..7601fa2a59 --- /dev/null +++ b/.github/workflows/nightly.yml @@ -0,0 +1,45 @@ +name: 'Ionic Nightly Build' + +on: + workflow_dispatch: + + # TODO remove this before merging + # This is so we can test in the PR + pull_request: + branches: [ '**' ] + +jobs: + dev-build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: actions/setup-node@v2 + with: + node-version: 16 + - name: Install Dependencies + run: npm ci --no-package-lock && lerna bootstrap --ignore-scripts -- --legacy-peer-deps + shell: bash + - name: Prepare NPM Token + run: echo //registry.npmjs.org/:_authToken=${NPM_TOKEN} > .npmrc + shell: bash + env: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + # A 1 is required before the timestamp + # as lerna will fail when there is a leading 0 + # See https://github.com/lerna/lerna/issues/2840 + - name: Create Nightly Hash + run: | + echo "HASH=1$(git log -1 --format=%H | cut -c 1-7)" >> $GITHUB_ENV + echo "TIMESTAMP=1$(date +%s)" >> $GITHUB_ENV + echo "CURRENT_VERSION=$(node ./.scripts/bump-version.js)" >> $GITHUB_ENV + shell: bash + - name: Checkout Nightly Branch + run: | + git checkout -b nightly-$(echo "${{ env.TIMESTAMP }}")-$(echo "${{ env.HASH }}") + shell: bash + - name: Create Nightly Build + run: | + HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.TIMESTAMP }}").$(echo "${{ env.HASH }}") --canary --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github + shell: bash From 7d329c914100e52417074cccddfd79792bba9ad0 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:10:53 +0000 Subject: [PATCH 02/11] chore(): do not use canary --- .github/workflows/nightly.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7601fa2a59..ea491f4b9c 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -9,7 +9,7 @@ on: branches: [ '**' ] jobs: - dev-build: + nightly-build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -38,8 +38,9 @@ jobs: - name: Checkout Nightly Branch run: | git checkout -b nightly-$(echo "${{ env.TIMESTAMP }}")-$(echo "${{ env.HASH }}") + git push origin nightly-$(echo "${{ env.TIMESTAMP }}")-$(echo "${{ env.HASH }}") shell: bash - name: Create Nightly Build run: | - HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.TIMESTAMP }}").$(echo "${{ env.HASH }}") --canary --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github + HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.TIMESTAMP }}").$(echo "${{ env.HASH }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github shell: bash From 6e058b36bdf8db42cab2c85e8dcb351391acc39a Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:14:20 +0000 Subject: [PATCH 03/11] chore(): pass in github token --- .github/workflows/nightly.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index ea491f4b9c..73a040d5c4 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -43,4 +43,6 @@ jobs: - name: Create Nightly Build run: | HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.TIMESTAMP }}").$(echo "${{ env.HASH }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash From f9b08de2fdc58d4251514bd1c28a195e7182457c Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:18:46 +0000 Subject: [PATCH 04/11] chore(): configure git identity --- .github/workflows/nightly.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 73a040d5c4..c7343db582 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -26,6 +26,10 @@ jobs: shell: bash env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + - name: Configure Identity + run: | + git config user.name github-actions + git config user.email github-actions@github.com # A 1 is required before the timestamp # as lerna will fail when there is a leading 0 # See https://github.com/lerna/lerna/issues/2840 From 9119e65e7529c2d6c39b87b24dbec57313c8c81f Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:31:58 +0000 Subject: [PATCH 05/11] chore(): user friendly date formatting --- .github/workflows/nightly.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c7343db582..565bfec7f6 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -34,19 +34,21 @@ jobs: # as lerna will fail when there is a leading 0 # See https://github.com/lerna/lerna/issues/2840 - name: Create Nightly Hash + # The date should output YYYYMMDD + # so that it is human readable run: | echo "HASH=1$(git log -1 --format=%H | cut -c 1-7)" >> $GITHUB_ENV - echo "TIMESTAMP=1$(date +%s)" >> $GITHUB_ENV + echo "DATE=1$(date +%Y%m%d)" >> $GITHUB_ENV echo "CURRENT_VERSION=$(node ./.scripts/bump-version.js)" >> $GITHUB_ENV shell: bash - name: Checkout Nightly Branch run: | - git checkout -b nightly-$(echo "${{ env.TIMESTAMP }}")-$(echo "${{ env.HASH }}") - git push origin nightly-$(echo "${{ env.TIMESTAMP }}")-$(echo "${{ env.HASH }}") + git checkout -b nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") + git push origin nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") shell: bash - name: Create Nightly Build run: | - HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.TIMESTAMP }}").$(echo "${{ env.HASH }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github + HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.DATE }}").$(echo "${{ env.HASH }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash From 9fa370252f7d80281593f796bf95c8105ee294e4 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:40:27 +0000 Subject: [PATCH 06/11] chore(): update template to account for nightly builds --- .github/ISSUE_TEMPLATE/bug_report.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index f715831465..7a8d6527b5 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -21,6 +21,7 @@ body: - label: v4.x - label: v5.x - label: v6.x + - label: Nightly - type: textarea attributes: label: Current Behavior From 438ba22a125ceb20be674417a5e274e32a09c2ea Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:48:05 +0000 Subject: [PATCH 07/11] chore(): clean up branch on deletion --- .github/workflows/nightly.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 565bfec7f6..2df4795897 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -52,3 +52,11 @@ jobs: env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash + # We need to push the commit changes in order for the tags + # to get updated, but we don't need to keep the changelog + # changes around. + - name: Delete Nightly Branch + run: | + git branch -d nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") + git push origin --delete nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") + shell: bash From 57afe1fb042bf5f77e6b9aa60d26d42145ba2895 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:48:34 +0000 Subject: [PATCH 08/11] chore(): remove leading 1 --- .github/workflows/nightly.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 2df4795897..3203e35d9f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -38,7 +38,7 @@ jobs: # so that it is human readable run: | echo "HASH=1$(git log -1 --format=%H | cut -c 1-7)" >> $GITHUB_ENV - echo "DATE=1$(date +%Y%m%d)" >> $GITHUB_ENV + echo "DATE=$(date +%Y%m%d)" >> $GITHUB_ENV echo "CURRENT_VERSION=$(node ./.scripts/bump-version.js)" >> $GITHUB_ENV shell: bash - name: Checkout Nightly Branch From ce88861523ebded611b2795981e4e62883523ad2 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 19:56:23 +0000 Subject: [PATCH 09/11] chore(): use cron --- .github/workflows/nightly.yml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 3203e35d9f..c3809a016f 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -1,12 +1,10 @@ name: 'Ionic Nightly Build' on: - workflow_dispatch: - - # TODO remove this before merging - # This is so we can test in the PR - pull_request: - branches: [ '**' ] + schedule: + # Run every Monday-Friday + # at 6:00 UTC (6:00 am UTC) + - cron: '00 06 * * 1,5' jobs: nightly-build: @@ -37,18 +35,17 @@ jobs: # The date should output YYYYMMDD # so that it is human readable run: | - echo "HASH=1$(git log -1 --format=%H | cut -c 1-7)" >> $GITHUB_ENV echo "DATE=$(date +%Y%m%d)" >> $GITHUB_ENV echo "CURRENT_VERSION=$(node ./.scripts/bump-version.js)" >> $GITHUB_ENV shell: bash - name: Checkout Nightly Branch run: | - git checkout -b nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") - git push origin nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") + git checkout -b nightly-$(echo "${{ env.DATE }}") + git push origin nightly-$(echo "${{ env.DATE }}") shell: bash - name: Create Nightly Build run: | - HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.DATE }}").$(echo "${{ env.HASH }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github + HUSKY_SKIP_HOOKS=1 lerna publish $(echo "${{ env.CURRENT_VERSION }}")-nightly.$(echo "${{ env.DATE }}") --no-verify-access --yes --force-publish='*' --dist-tag nightly --conventional-commits --conventional-prerelease --exact --create-release github env: GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} shell: bash @@ -57,6 +54,6 @@ jobs: # changes around. - name: Delete Nightly Branch run: | - git branch -d nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") - git push origin --delete nightly-$(echo "${{ env.DATE }}")-$(echo "${{ env.HASH }}") + git branch -d nightly-$(echo "${{ env.DATE }}") + git push origin --delete nightly-$(echo "${{ env.DATE }}") shell: bash From e5aedb72cd7faa69426720cf426f71d2de89c6d3 Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 20:05:31 +0000 Subject: [PATCH 10/11] chore(): test PR one more time --- .github/workflows/nightly.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index c3809a016f..7aeac3d492 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -5,6 +5,8 @@ on: # Run every Monday-Friday # at 6:00 UTC (6:00 am UTC) - cron: '00 06 * * 1,5' + pull_request: + branches: [ '**' ] jobs: nightly-build: From a84041cbc8b07562f3ed4fc5bad52c505be6412a Mon Sep 17 00:00:00 2001 From: Liam DeBeasi Date: Thu, 14 Apr 2022 20:11:55 +0000 Subject: [PATCH 11/11] chore(): switch to main before deleting branch --- .github/workflows/nightly.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 7aeac3d492..1c086144ad 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -56,6 +56,7 @@ jobs: # changes around. - name: Delete Nightly Branch run: | + git checkout main git branch -d nightly-$(echo "${{ env.DATE }}") git push origin --delete nightly-$(echo "${{ env.DATE }}") shell: bash