Skip to content

[EPIC FOUR-18012] Screen Template V2 Implementation #1349

[EPIC FOUR-18012] Screen Template V2 Implementation

[EPIC FOUR-18012] Screen Template V2 Implementation #1349

Workflow file for this run

name: ci
on:
pull_request:
types: [opened, reopened, synchronize, edited]
jobs:
e2e:
runs-on: 'ubuntu-latest'
strategy:
fail-fast: false # https://github.com/cypress-io/github-action/issues/48
matrix:
containers: [0, 1, 2, 3, 4]
steps:
- name: Checkout screen builder
uses: actions/checkout@v4
- uses: actions-ecosystem/action-regex-match@v2
id: install-vfe
with:
text: ${{ github.event.pull_request.body }}
regex: 'ci:vue-form-elements:([^\s]+)'
- name: set-vfe-branch
run: |
export VFE_BRANCH=''
if [[ ${{ contains(github.event.pull_request.body, 'ci:next') }} ]]; then
export VFE_BRANCH=next
fi
if [[ "${{ steps.install-vfe.outputs.match }}" != "" ]]; then
export VFE_BRANCH=${{ steps.install-vfe.outputs.group1 }}
fi
echo "VFE_BRANCH=${VFE_BRANCH}" >> $GITHUB_ENV
- name: Checkout vue-form-elements
if: ${{ env.VFE_BRANCH != '' }}
uses: actions/checkout@v4
with:
repository: ProcessMaker/vue-form-elements
path: vue-form-elements
ref: ${{ env.VFE_BRANCH }}
- name: Setup node env 🏗
uses: actions/setup-node@master
with:
node-version: 20
check-latest: true
cache: 'npm'
- name: Install vue-form-elements dependencies
if: ${{ env.VFE_BRANCH != '' }}
working-directory: vue-form-elements
run: npm ci && npm run build-bundle
- name: Install dependencies 👨🏻‍💻
run: npm ci
- name: Link vue-form-elements
if: ${{ env.VFE_BRANCH != '' }}
run: npm link ./vue-form-elements
# - name: Run linter 👀
# run: npm run lint
# - name: Run tests 🧪
# run: npm run test
- name: Cypress run
uses: cypress-io/github-action@v6
with:
browser: chrome
install: false
start: npm run dev
wait-on: 'http://localhost:5173/'
config-file: cypress.config.js
spec: "tests/e2e/**/*"
record: true
parallel: true
group: 'CI - Chrome'
env:
# For recording and parallelization to work you must set your CYPRESS_RECORD_KEY
# in GitHub repo → Settings → Secrets → Actions
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
# Creating a token https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token
GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }}
COMMIT_INFO_MESSAGE: ${{ github.event.pull_request.title }}
# re-enable PR comment bot
COMMIT_INFO_SHA: ${{github.event.pull_request.head.sha}}
- name: Upload Cypress Screenshots
uses: actions/upload-artifact@v4
# Only capture images on failure
if: failure()
with:
name: cypress-screenshots
path: tests/e2e/screenshots
- name: Upload Cypress Videos
uses: actions/upload-artifact@v4
# Only capture videos on failure
if: failure()
with:
name: cypress-videos
path: tests/e2e/videos
- run: ls -l .
- run: ls -R coverage .nyc_output
- name: Prepare coverage
run: cp .nyc_output/out.json coverage/coverage-${{ matrix.containers }}.json
- name: Archive code coverage
uses: actions/upload-artifact@v4
with:
name: coverage-${{ matrix.containers }}
path: ./coverage/coverage-${{ matrix.containers }}.json
coverage:
needs: e2e
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎
uses: actions/checkout@v4
- name: Setup node env 🏗
uses: actions/setup-node@v4
with:
node-version: 20
check-latest: true
cache: 'npm'
- name: Install dependencies 👨🏻‍💻
run: npm ci
- name: Create reports folder
run: mkdir reports .nyc_output
- name: Download all workflow run artifacts
uses: actions/download-artifact@v4
with:
path: reports
merge-multiple: true
- name: Run Coverage
run: |
npx nyc merge reports
mv coverage.json .nyc_output/out.json
- name: Create coverage report
run: npx nyc report --reporter html --reporter text --reporter json-summary --reporter lcov --report-dir coverage
- name: Store Artifacts
uses: actions/upload-artifact@v4
with:
name: code-coverage-report
path: |
coverage
.nyc_output
reports
scan:
needs: coverage
uses: ./.github/workflows/sonarqube.yml
secrets: inherit