Skip to content

Rete QA for vue v3 (retejs/rete-qa#feature/scopes-template, rete-kit@latest ) #112

Rete QA for vue v3 (retejs/rete-qa#feature/scopes-template, rete-kit@latest )

Rete QA for vue v3 (retejs/rete-qa#feature/scopes-template, rete-kit@latest ) #112

Workflow file for this run

name: Rete QA Regression
run-name: Rete QA for ${{ inputs.name }} v${{ inputs.version }} (${{ inputs.qa }}, ${{ inputs.kit }} ${{ inputs.deps || '' }})
on:
workflow_call:
inputs:
name:
required: true
type: string
version:
required: true
type: number
node:
type: number
qa:
type: string
default: 'rete-qa@latest'
kit:
type: string
default: 'rete-kit@latest'
deps:
type: string
default: ''
workflow_dispatch:
inputs:
name:
required: true
type: choice
description: Stack
options:
- react
- vue
- angular
- svelte
version:
required: true
type: number
description: Stack version
node:
type: number
description: 'Node.js version (default: 16)'
qa:
description: 'Rete QA (<name>@<version> or <owner>/<repo>#<version>)'
type: string
default: 'rete-qa@latest'
kit:
description: 'Rete Kit (<name>@<version> or <owner>/<repo>#<version>)'
type: string
default: 'rete-kit@latest'
deps:
description: 'List of dependencies (<owner>/<repo>#<version>, comma separated)'
type: string
default: ''
jobs:
tools:
name: Prepare tools
uses: ./.github/workflows/prepare-qa-kit.yml
secrets: inherit
with:
qa: ${{ inputs.qa }}
kit: ${{ inputs.kit }}
deps:
name: Prepare alias deps
if: inputs.deps
uses: ./.github/workflows/prepare-deps.yml
secrets: inherit
with:
repos: ${{ inputs.deps }}
init:
name: Initialize ${{ inputs.name }} v${{ inputs.version }} app
runs-on: ubuntu-latest
timeout-minutes: 5
needs: [tools,deps]
if: |
always() &&
!contains(needs.*.result, 'failure') &&
!contains(needs.*.result, 'cancelled')
steps:
- uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node || 16 }}
- name: Cache global node modules
id: cache-npm
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-${{ inputs.node || 16 }}-cache-global-node-modules
- name: Download artifact with Rete QA
uses: actions/download-artifact@v4
if: needs.tools.outputs.qa-artifact
with:
name: ${{ needs.tools.outputs.qa-artifact }}
path: .
- name: Download artifact with Rete Kit
uses: actions/download-artifact@v4
if: needs.tools.outputs.kit-artifact
with:
name: ${{ needs.tools.outputs.kit-artifact }}
path: .
- name: Download deps
uses: actions/download-artifact@v4
if: inputs.deps
with:
name: deps
path: .
- name: Install Rete QA
run: npm i -g ${{ needs.tools.outputs.qa-path }} ${{ needs.tools.outputs.kit-path }}
- name: Init application
run: rete-qa init -s ${{ inputs.name }} -sv ${{ inputs.version }} ${{ inputs.deps && '--deps-alias deps.json' || '' }}
env:
CI: ""
- name: Prune node_modules
run: npx rimraf --glob **/node_modules
working-directory: .rete-qa
- uses: actions/upload-artifact@v4
with:
name: rete-qa-${{ inputs.name }}-v${{ inputs.version }}
path: .rete-qa
retention-days: 3
test:
name: ${{ matrix.browser }}
timeout-minutes: 60
runs-on: ubuntu-latest
needs: [init,tools]
if: |
always() &&
!contains(needs.*.result, 'failure') &&
!contains(needs.*.result, 'cancelled')
strategy:
fail-fast: false
matrix:
browser: [chromium,firefox,webkit]
steps:
- name: Install fonts
run: |
sudo apt-get -qqy update
sudo apt-get -qqy --no-install-recommends install \
libfontconfig \
libfreetype6 \
xfonts-cyrillic \
xfonts-scalable \
fonts-liberation \
fonts-ipafont-gothic \
fonts-wqy-zenhei \
fonts-tlwg-loma-otf \
fonts-freefont-ttf
sudo rm -rf /var/lib/apt/lists/*
sudo apt-get -qyy clean
- uses: actions/download-artifact@v4
with:
name: rete-qa-${{ inputs.name }}-v${{ inputs.version }}
path: .rete-qa
- uses: actions/setup-node@v3
with:
node-version: ${{ inputs.node || 16 }}
- name: Cache global node modules
id: cache-npm
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-${{ inputs.node || 16 }}-cache-global-node-modules
- name: Download artifact with Rete QA
uses: actions/download-artifact@v4
if: needs.tools.outputs.qa-artifact
with:
name: ${{ needs.tools.outputs.qa-artifact }}
path: .
- name: Download artifact with Rete Kit
uses: actions/download-artifact@v4
if: needs.tools.outputs.kit-artifact
with:
name: ${{ needs.tools.outputs.kit-artifact }}
path: .
- name: Install Rete QA
run: npm i -g ${{ needs.tools.outputs.qa-path }} ${{ needs.tools.outputs.kit-path }}
- name: Install Playwright Browsers
run: npx playwright install --with-deps ${{ matrix.browser }}
- name: Run Playwright tests
run: rete-qa test -s ${{ inputs.name }} -sv ${{ inputs.version }} --project ${{ matrix.browser }}
env:
REPORTER: '[["github"], ["html", { "open": "never", "outputFolder": "${{ github.workspace }}/report" }]]'
- uses: actions/upload-artifact@v3
if: always()
with:
name: test-results-${{ inputs.name }}-v${{ inputs.version }}-${{ matrix.browser }}
path: test-results/
retention-days: 7
- uses: actions/upload-artifact@v4
if: always()
with:
name: report-${{ inputs.name }}-v${{ inputs.version }}-${{ matrix.browser }}
path: ${{ github.workspace }}/report
retention-days: 7