Convert E2E tests to Typescript (#257) #794
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: test | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
branches: | |
- main | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
env: | |
cache-name: cache-node-modules | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Check code style | |
run: | | |
npm ci | |
npm run prettier | |
npm run lint | |
unit-test: | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
# only LTS versions starting from the lowest we support | |
node-version: ['14', '16', '18', '20'] | |
env: | |
cache-name: cache-node-modules | |
NYC_REPORT_DIR: coverage_unit_node${{ matrix.node-version }} | |
steps: | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: actions/checkout@v3 | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-${{ matrix.node-version }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-${{ matrix.node-version }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-${{ matrix.node-version }}-build- | |
${{ runner.os }}-${{ matrix.node-version }}- | |
- name: Run unit tests | |
run: | | |
npm ci | |
npm run test | |
- run: tar -cvf ${{ env.NYC_REPORT_DIR }}.tar ${{ env.NYC_REPORT_DIR }} | |
- name: Store coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.NYC_REPORT_DIR }} | |
path: ${{ env.NYC_REPORT_DIR }}.tar | |
retention-days: 1 | |
e2e-test: | |
runs-on: ubuntu-latest | |
environment: azure-prod | |
env: | |
E2E_HOST: ${{ secrets.DATABRICKS_HOST }} | |
E2E_PATH: ${{ secrets.TEST_PECO_WAREHOUSE_HTTP_PATH }} | |
E2E_ACCESS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }} | |
E2E_TABLE_SUFFIX: ${{github.sha}} | |
E2E_CATALOG: peco | |
E2E_SCHEMA: default | |
E2E_VOLUME: e2etests | |
cache-name: cache-node-modules | |
NYC_REPORT_DIR: coverage_e2e | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- name: Run e2e tests | |
run: | | |
npm ci | |
NODE_OPTIONS="--max-old-space-size=4096" npm run e2e | |
- run: tar -cvf ${{ env.NYC_REPORT_DIR }}.tar ${{ env.NYC_REPORT_DIR }} | |
- name: Store coverage report | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ env.NYC_REPORT_DIR }} | |
path: ${{ env.NYC_REPORT_DIR }}.tar | |
retention-days: 1 | |
coverage: | |
needs: [unit-test, e2e-test] | |
runs-on: ubuntu-latest | |
env: | |
cache-name: cache-node-modules | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Cache node modules | |
uses: actions/cache@v3 | |
with: | |
path: ~/.npm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }} | |
restore-keys: | | |
${{ runner.os }}-build-${{ env.cache-name }}- | |
${{ runner.os }}-build- | |
${{ runner.os }}- | |
- uses: actions/download-artifact@v4 | |
with: | |
pattern: coverage_* | |
merge-multiple: true | |
- name: Unpack coverage reports | |
run: | | |
ls -1 coverage_*.tar | xargs -I '{}' -- tar -xvf '{}' | |
rm coverage_*.tar | |
- run: ls -la | |
- name: Coverage | |
uses: codecov/codecov-action@v3 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
fail_ci_if_error: true | |
verbose: true |