ci: setup playwright #470
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build, Test, and Deploy | |
on: | |
pull_request: | |
types: | |
- opened | |
- synchronize | |
- reopened | |
push: | |
branches: | |
- master | |
jobs: | |
check-rebase: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Fetch all branches | |
run: | | |
git fetch --all | |
- name: Check for divergence from master | |
run: | | |
git fetch origin master | |
build: | |
needs: check-rebase | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set Node Version | |
uses: actions/setup-node@v4 | |
with: | |
node-version: lts/iron | |
- name: Set the branch name | |
id: set_branch | |
run: | | |
BRANCH_NAME=${{ github.head_ref }} | |
echo "Branch name is: $BRANCH_NAME" | |
# Check for remote branch | |
REMOTE_BRANCH=$(git ls-remote --heads https://[email protected]/chintankavathia/ngx-datatable-snapshots.git $BRANCH_NAME) | |
echo "Remote branch lookup result: $REMOTE_BRANCH" | |
if [ -n "$REMOTE_BRANCH" ]; then | |
echo "Branch $BRANCH_NAME exists" | |
echo "branch=$BRANCH_NAME" >> $GITHUB_ENV | |
else | |
echo "Branch $BRANCH_NAME does not exist, defaulting to main" | |
echo "branch=main" >> $GITHUB_ENV | |
fi | |
- name: Clone Snapshot Repository | |
run: | | |
git clone https://[email protected]/chintankavathia/ngx-datatable-snapshots.git temp_snapshots | |
cd temp_snapshots | |
git checkout ${{ env.branch }} | |
env: | |
SNAPSHOT_REPO_TOKEN: ${{ secrets.SNAPSHOT_REPO_TOKEN }} | |
- name: Copy Snapshots to Playwright Folder | |
run: | | |
mkdir -p playwright/snapshots | |
cp -r temp_snapshots/snapshots/e2e playwright/snapshots/ | |
rm -rf temp_snapshots | |
- name: Install | |
uses: bahmutov/npm-install@v1 | |
- name: Build and package library | |
run: | | |
npm run package --if-present | |
env: | |
CI: true | |
- name: Format | |
run: | | |
npm run format:check --if-present | |
env: | |
CI: true | |
- name: Build | |
run: | | |
npm run build --if-present | |
env: | |
CI: true | |
- name: Test | |
run: | | |
npm run ci --if-present | |
env: | |
CI: true | |
- name: E2E Prepare | |
run: | | |
npm run e2e:prepare --if-present | |
env: | |
CI: true | |
- name: E2E | |
run: | | |
npm run vrt --if-present | |
env: | |
CI: true | |
- name: Build Docs | |
run: | | |
npm run build-docs --if-present | |
env: | |
CI: true | |
- name: Deploy Docs | |
uses: JamesIves/[email protected] | |
with: | |
branch: gh-pages | |
folder: dist/ngx-datatable | |
if: ${{ github.ref == 'refs/heads/master' }} |