chore: add a utility script to make development easier #1573
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: Integration testing | |
on: | |
push: | |
branches: [ main, dev** ] | |
tags: | |
- "*" | |
pull_request: | |
env: | |
COV_NODE_VERSION: 20 | |
UPSTREAM_TAR: quipucords-ui-dist.tar | |
jobs: | |
Integration: | |
runs-on: ubuntu-latest | |
permissions: | |
# required for releasing artifacts | |
contents: write | |
strategy: | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
cache: npm | |
- name: Node.js modules cache | |
uses: actions/cache@v4 | |
id: modules-cache | |
with: | |
path: ${{ github.workspace }}/node_modules | |
key: ${{ runner.os }}-${{ matrix.node-version }}-modules-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node-version }}-modules | |
- name: Install Node.js packages | |
if: ${{ steps.modules-cache.outputs.cache-hit != 'true' }} | |
run: npm install | |
- name: Linting | |
run: npm run test:ci-lint | |
- name: Build integration | |
run: npm run test:ci-build | |
- name: Unit tests | |
run: npm run test:ci-coverage | |
- name: Compress upstream assets | |
if: ${{ success() && startsWith(matrix.node-version, env.COV_NODE_VERSION) && startsWith(github.ref, 'refs/tags/') }} | |
run: | | |
tar -cf ${UPSTREAM_TAR} build | |
gzip -f --best ${UPSTREAM_TAR} | |
- name: Release artifacts | |
uses: ncipollo/[email protected] | |
if: ${{ success() && startsWith(matrix.node-version, env.COV_NODE_VERSION) && startsWith(github.ref, 'refs/tags/') }} | |
with: | |
artifacts: "${{ env.UPSTREAM_TAR }}.gz" | |
# set allow updates so we can create releases to trigger this | |
allowUpdates: true | |
# don't override what's set on the release | |
omitBodyDuringUpdate: true | |
omitNameDuringUpdate: true | |
omitPrereleaseDuringUpdate: true | |
# required for publishing artifacts and updating the release | |
token: ${{ secrets.GITHUB_TOKEN }} |