# Automated release management using release-it and conventional commits. Run this manually to create a (pre-)release or push to the main and beta branch to create a dry-run. name: Release It on: push: branches: - beta workflow_dispatch: jobs: pre-release-it: runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 with: fetch-depth: 0 - name: git config run: | git config user.name "${GITHUB_ACTOR}" git config user.email "${GITHUB_ACTOR}@users.noreply.github.com" - run: npm install - name: Build release variant run: npm run build:${RELEASE_CHANNEL} env: RELEASE_CHANNEL: ${{ github.ref_name == 'beta' && 'beta' || 'main' }} - run: npx -p @release-it/bumper -p @release-it/conventional-changelog release-it --git.requireBranch="main" --ci --dry-run name: Release (DRY RUN) if: github.event_name == 'push' && github.ref == 'refs/heads/main' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx -p @release-it/bumper -p @release-it/conventional-changelog release-it --git.requireBranch="main" --ci name: Release if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/main' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx -p @release-it/bumper -p @release-it/conventional-changelog release-it --preRelease=beta --ci --dry-run name: Pre-Release (DRY RUN) if: github.event_name == 'push' && github.ref == 'refs/heads/beta' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: npx -p @release-it/bumper -p @release-it/conventional-changelog release-it --preRelease=beta --ci name: Pre-Release if: github.event_name == 'workflow_dispatch' && github.ref == 'refs/heads/beta' env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}