Skip to content

FIO-7507: publish-dev-tag-to-npm #8

FIO-7507: publish-dev-tag-to-npm

FIO-7507: publish-dev-tag-to-npm #8

Workflow file for this run

name: Build & Test
on:
# push:
pull_request:
types: [opened, synchronize]
env:
NODE_VERSION: 18.x
jobs:
setup:
runs-on: ubuntu-latest
steps:
- run: echo "Triggered by ${{ github.event_name }} event."
- name: Check out repository code ${{ github.repository }} on ${{ github.ref }}
uses: actions/checkout@v3
- name: Set up Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Cache node modules
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Installing dependencies
if: steps.cache.outputs.cache-hit != 'true'
uses: borales/actions-yarn@v4
with:
cmd: install --frozen-lockfile
build:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Check out repository code ${{ github.repository }} on ${{ github.ref }}
uses: actions/checkout@v3
- name: Restore node modules from cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Build
uses: borales/actions-yarn@v4
with:
cmd: build
test:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Check out repository code ${{ github.repository }} on ${{ github.ref }}
uses: actions/checkout@v3
- name: Restore node modules from cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Test
uses: borales/actions-yarn@v4
with:
cmd: test
publish:
if: ${{ github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'synchronize') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
- name: Restore node modules from cache
uses: actions/cache@v3
with:
path: node_modules
key: ${{ runner.os }}-node-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-node-
- name: Prepare version for publish
id: prep
run: |
PR_NUMBER=$(echo ${{ github.event.number }})
CURRENT_VERSION=$(node -p "require('./package.json').version")
# Fetch all history for the main branch (or your base branch)
git fetch --depth=1 origin +refs/heads/main:refs/remotes/origin/main
# Find the common ancestor of HEAD and the main branch
COMMON_ANCESTOR=$(git merge-base HEAD origin/main)
# Count the number of commits on the current branch since it diverged from main
COMMIT_INDEX=$(git rev-list --count $COMMON_ANCESTOR..HEAD)
# Since we want the first commit to be 0, subtract 1 to get the index
COMMIT_INDEX=$((COMMIT_INDEX - 1))
NEW_VERSION="${CURRENT_VERSION}-dev.${PR_NUMBER}.${COMMIT_INDEX}"
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
- name: Echo version for testing
run: |
echo "Version to publish: $NEW_VERSION"
echo "Adds a commit to test increment"