Skip to content

Beta Release

Beta Release #11

Workflow file for this run

name: Beta Release
on:
workflow_dispatch: # This allows manual triggering only from the Actions tab
jobs:
install:
runs-on: ubuntu-latest
steps:
- name: Checkout DIVE
uses: actions/checkout@main
- name: Setup Node.js
uses: actions/setup-node@main
- name: Search for cached dependencies
uses: actions/cache@main
id: yarn-cache
with:
path: node_modules
key:
node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install DIVE dependencies (if cache not found)
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn
eslint:
runs-on: ubuntu-latest
needs: install
steps:
- name: Checkout DIVE
uses: actions/checkout@main
- name: Search for cached dependencies
uses: actions/cache@main
id: yarn-cache
with:
path: node_modules
key:
node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install DIVE dependencies (if cache not found)
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn
- name: Lint DIVE
run: yarn lint
unit:
runs-on: ubuntu-latest
needs: install
steps:
- name: Checkout DIVE
uses: actions/checkout@main
- name: Search for cached dependencies
uses: actions/cache@main
id: yarn-cache
with:
path: node_modules
key:
node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install DIVE dependencies (if cache not found)
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn
- name: Unit-Test DIVE
run: yarn unit
prettier-fix:
runs-on: ubuntu-latest
needs: install
steps:
- name: Checkout DIVE
uses: actions/checkout@main
- name: Search for cached dependencies
uses: actions/cache@main
id: yarn-cache
with:
path: node_modules
key:
node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install DIVE dependencies (if cache not found)
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn
- name: Prettier fix DIVE
run: yarn prettier:fix && git add .
publish-beta:
runs-on: ubuntu-latest
needs: [eslint, unit, prettier-fix]
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '20'
- name: Search for cached dependencies
uses: actions/cache@v4
id: yarn-cache
with:
path: node_modules
key:
node-modules-${{ runner.os }}-${{ hashFiles('yarn.lock') }}
- name: Install dependencies (if cache not found)
if: steps.yarn-cache.outputs.cache-hit != 'true'
run: yarn
- name: Bump to Beta Version
env:
PR_NUMBER: ${{ github.event.pull_request.number || 'workflow_dispatch' }}
run: |
yarn version --prerelease --preid beta
- name: 'Create release branch'
run: git checkout -b release/v$(node -p "require('./package.json').version")
- name: Build DIVE
run: yarn build
- name: 'Add Build files to git'
run: |
git add ./build -f
echo "Staged build files! Status:"
git status
- name: 'Commit changes'
run: |
echo "Committing ..."
git config user.name "GitHub Actions"
git config user.email "[email protected]"
git commit -m "Release v$(node -p "require('./package.json').version") [skip ci]"
echo "Committed! Status:"
git status
- name: 'Add beta tag'
run: |
VERSION=$(node -p "require('./package.json').version")
BETA_TAG="v${VERSION}-beta.${{ github.event.pull_request.number || 'workflow_dispatch' }}"
git tag -a ${BETA_TAG} -m "Release ${BETA_TAG}"
echo "Created tag ${BETA_TAG}"
- name: 'Push beta tag to trunk'
run: |
VERSION=$(node -p "require('./package.json').version")
BETA_TAG="v${VERSION}-beta.${{ github.event.pull_request.number || 'workflow_dispatch' }}"
git push origin ${BETA_TAG}
- name: Publish Beta tag to npm
run: |
yarn publish --tag beta