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 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] permissions: id-token: write 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 hi@ionicframework.com 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