name: Release daily alpha on: schedule: - cron: 0 0 30 * 1-5 # At 12:30am UTC work day workflow_dispatch: # for testing jobs: tag: outputs: tagname: v${{ steps.version.outputs.VERSION }} version: ${{ steps.version.outputs.VERSION }} continue: ${{ steps.create-branch.outputs.CONTINUE }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Setup Node.js uses: actions/setup-node@v3 with: node-version: "16.x" registry-url: "https://npm.pkg.github.com" - name: Install deps run: | npm install sudo apt-get install -y ripgrep cd packages/bump-version-for-cron && npm run build env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Bump version id: version run: | node packages/bump-version-for-cron/dist/index.js --path packages/core/package.json - name: Check if branch already exists id: check-branch run: git ls-remote --exit-code --tags origin v${{ steps.version.outputs.VERSION }} continue-on-error: true - name: Create branch and tag and push id: create-branch run: | # failure means that the tag doesn't exist so we should create it if [ ${{ steps.check-branch.outcome }} != 'failure' ]; then echo "CONTINUE=false" >> "$GITHUB_OUTPUT" exit 0 fi git config --global user.email "bot@k8slens.dev" git config --global user.name "k8slens bot" git checkout -b release/v${{ steps.version.outputs.VERSION }} git add . git commit -sm "Release ${{ steps.version.outputs.VERSION }}" git tag v${{ steps.version.outputs.VERSION }} git push origin v${{ steps.version.outputs.VERSION }} echo "CONTINUE=true" >> "$GITHUB_OUTPUT" create_release: outputs: upload_url: ${{ steps.create_release.outputs.upload_url }} version: ${{ needs.tag.outputs.version }} needs: [tag] if: ${{ needs.tag.outputs.continue == 'true' }} runs-on: ubuntu-20.04 steps: - name: Create GitHub release uses: softprops/action-gh-release@v1 id: create_release env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: tag_name: ${{ needs.tag.outputs.tagname }} name: ${{ needs.tag.outputs.tagname }} generate_release_notes: true prerelease: true release_packages: needs: [create_release] runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 with: ref: v${{ needs.create_release.outputs.version }} - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v3 with: node-version: "16.x" registry-url: "https://npm.pkg.github.com" - name: Build package shell: bash run: | npm ci npm run build env: NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Release to GitHub NPM registry run: | npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}" npx lerna \ publish from-package \ --no-push \ --no-git-tag-version \ --yes \ --dist-tag cron env: NPM_TOKEN: ${{ secrets.NPM_TOKEN }}