Skip to content

🔧 Fix the storybook CI #7232

🔧 Fix the storybook CI

🔧 Fix the storybook CI #7232

Workflow file for this run

name: CI
on:
push: { branches: [dev, main] }
pull_request:
jobs:
install:
timeout-minutes: 10
strategy:
matrix: { node: ["18.x"], os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- if: ${{ steps.yarn-cache.outputs.cache-hit != 'true' }}
name: Install dependencies
run: yarn --immutable
test:
if: false
needs: install
timeout-minutes: 60
strategy:
matrix: { node: ["18.x"], os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn --immutable
- name: Verify linting
run: yarn lint
- name: Build Pioneer
run: yarn build
- name: Run tests
run: node --max_old_space_size=7000 --expose-gc $(yarn bin jest) --logHeapUsage --silent
working-directory: packages/ui
storybook-test:
needs: install
timeout-minutes: 60
strategy:
matrix: { node: ["18.x"], os: [ubuntu-latest] }
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node }}
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn config get cacheFolder)" >> $GITHUB_OUTPUT
- uses: actions/cache@v3
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install dependencies
run: yarn --immutable
- name: Install Playwright
run: npx playwright install --with-deps
- name: Get the Storybook preview deployment url
run: |
PROJECT="pioneer-2-storybook"
PREFIX="git-"
URL_BRANCH=$( \
node \
-e "process.stdout.write(process.argv[1].replace(/#/g, '').replace(/\W/g, '-').toLowerCase())" \
"$BRANCH" \
)
LONG="$PROJECT-$PREFIX$URL_BRANCH-joystream"
SHORT=$(echo "$LONG" | head -c 46)
SUBDOMAIN=$( \
[ ${#LONG} -te 63 ] \
&& echo "$LONG" \
|| echo "$SHORT-$(echo -n "$PREFIX$BRANCH$PROJECT" | sha256sum | head -c 6)" \
)
echo "VERCEL_DEPLOYMENT_URL=$SUBDOMAIN.vercel.app" >> "$GITHUB_ENV"
env:
BRANCH: ${{ github.ref_name }}
- name: Wait for the deployment to complete
run: |
while true; do
RES=$(curl -L "https://api.vercel.com/v13/deployments/${{ env.VERCEL_DEPLOYMENT_URL }}")
ARR=($( \
node \
-e " \
const res = JSON.parse(process.argv[1]); \
process.stdout.write(`${res.status} ${res.meta.githubCommitSha}`);
" \
"RES" \
))
STATUS=${ARR[1]}
SHA=${ARR[2]}
[ "SHA" == "$COMMIT_SHA" ] && [ "STATUS" == "READY"] && break
echo "Wait for the Storybook deployment..."
sleep 20
done
env:
COMMIT_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
- name: Run Storybook tests
run: yarn workspace @joystream/pioneer test-storybook
env:
TARGET_URL: https://${{ env.VERCEL_DEPLOYMENT_URL }}