Skip to content

Fixing the formioReady promise to always resolve if you load it from the full source instead of the embed code. #121

Fixing the formioReady promise to always resolve if you load it from the full source instead of the embed code.

Fixing the formioReady promise to always resolve if you load it from the full source instead of the embed code. #121

Workflow file for this run

name: Build, Test, Publish
on:
pull_request:
types: [opened, synchronize, reopened]
env:
NODE_VERSION: 20.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
- name: Lint
uses: borales/actions-yarn@v4
with:
cmd: lint
##################################################################
## Build
##################################################################
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
##################################################################
test-current:
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
test-target:
needs: setup
runs-on: ubuntu-latest
steps:
- name: Check out repository code ${{ github.repository }} on ${{ github.ref }}
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Merge target branch into current branch
run: |
git config --global user.email "[email protected]"
git config --global user.name "pkgbot"
git fetch origin ${{ github.event.pull_request.base.ref }}:${{ github.event.pull_request.base.ref }}
git merge ${{ github.event.pull_request.base.ref }} --no-commit --no-ff
if ! git merge --no-commit --no-ff ${{ github.event.pull_request.base.ref }}; then
echo "Merge conflicts detected."
git merge --abort
exit 1
else
echo "Merge successful."
fi
- 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: Test
uses: borales/actions-yarn@v4
with:
cmd: test
##################################################################
## Publish
##################################################################
publish:
needs: [setup, test-current, test-target]
if: ${{ github.event_name == 'pull_request' && (github.event.action == 'opened' || github.event.action == 'synchronize') }}
runs-on: ubuntu-latest
steps:
- name: Check out repository code ${{ github.repository }} on ${{ github.ref }}
uses: actions/checkout@v3
- name: Configure Git user
run: |
git config --global user.email "[email protected]"
git config --global user.name "pkgbot"
- name: Add npm token to .npmrc
run: |
echo "//registry.npmjs.org/:_authToken=${{ secrets.NPM_TOKEN }}" > .npmrc
- name: Set up Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
cache: 'npm'
registry-url: 'https://registry.npmjs.org/'
- 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
- name: Prepare version for publish
id: prep
run: |
# Extract the pull request number and the short SHA of the commit
PR_NUMBER=$(echo ${{ github.event.number }})
COMMIT_SHORT_SHA=$(echo "${{ github.event.pull_request.head.sha }}" | cut -c1-7)
# Extract the current version from package.json
CURRENT_VERSION=$(node -p "require('./package.json').version")
# If the current version includes '-rc.', remove it and everything after
# This step ensures that we start with a base version like '3.0.0' even if it was a release candidate
BASE_VERSION=$(echo "$CURRENT_VERSION" | cut -d'-' -f1)
# Construct the new version string
NEW_VERSION="${BASE_VERSION}-dev.${PR_NUMBER}.${COMMIT_SHORT_SHA}"
# Output the new version for use in subsequent GitHub Actions steps
echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV
- name: Echo version to Publish
run: |
echo "Version to publish: $NEW_VERSION"
- name: Publish to npm
run: |
npm version $NEW_VERSION
yarn publish --tag dev