Ionic Nightly Build #49
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: 'Ionic Nightly Build' | |
on: | |
schedule: | |
# Run every Monday-Friday | |
# at 6:00 UTC (6:00 am UTC) | |
- cron: '00 06 * * 1-5' | |
jobs: | |
create-nightly-hash: | |
runs-on: ubuntu-latest | |
outputs: | |
nightly-hash: ${{ steps.create-nightly-hash.outputs.NIGHTLY_HASH }} | |
steps: | |
- uses: actions/checkout@v3 | |
# 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: Install Dependencies | |
run: npm ci --no-package-lock | |
shell: bash | |
- id: create-nightly-hash | |
name: Create Nightly Hash | |
# The date should output YYYYMMDD | |
# so that it is human readable | |
run: | | |
echo "NIGHTLY_HASH=$(node ./.scripts/bump-version.js)-nightly.$(date +%Y%m%d)" >> $GITHUB_OUTPUT | |
shell: bash | |
release-ionic: | |
needs: [create-nightly-hash] | |
uses: ./.github/workflows/release-ionic.yml | |
with: | |
tag: nightly | |
version: ${{ needs.create-nightly-hash.outputs.nightly-hash }} | |
secrets: | |
NPM_TOKEN: ${{ secrets.NPM_TOKEN }} | |
finalize-release: | |
needs: [create-nightly-hash, release-ionic] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
with: | |
token: ${{ secrets.IONITRON_TOKEN }} | |
fetch-depth: 0 | |
- name: Configure Identity | |
# Commits from github-actions do not | |
# trigger other GitHub Actions. As a result, | |
# we publish releases from Ionitron instead | |
# so actions run when merging the release branch | |
# back into main. | |
run: | | |
git config user.name ionitron | |
git config user.email [email protected] | |
shell: bash | |
- name: Checkout Nightly Branch | |
# There are branch protection rules for our version | |
# branches (i.e. "6.2.x"), so we cannot name the branch | |
# the nightly hash as it would fall under the protection | |
# rule. As a result, we prefix "tmp-" to the branch. | |
run: | | |
git checkout -b tmp-${{ needs.create-nightly-hash.outputs.nightly-hash }} | |
git push origin tmp-${{ needs.create-nightly-hash.outputs.nightly-hash }} | |
shell: bash | |
- name: Create GitHub Release | |
run: lerna version ${{ needs.create-nightly-hash.outputs.nightly-hash }} --yes --force-publish='*' --conventional-commits --conventional-prerelease --create-release github | |
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 checkout main | |
git branch -D tmp-${{ needs.create-nightly-hash.outputs.nightly-hash }} | |
git push origin --delete tmp-${{ needs.create-nightly-hash.outputs.nightly-hash }} | |
shell: bash |