Skip to content

feature(app): input description and python-version as cli options #109

feature(app): input description and python-version as cli options

feature(app): input description and python-version as cli options #109

name: Test and publish
on: push
jobs:
test:
strategy:
fail-fast: false
matrix:
runner: [ubuntu-22.04, windows-2022]
node-version: [16, 18, latest]
name: Run tests
runs-on: ${{ matrix.runner }}
env:
unit-test-results-path: unit-test-results.json
end-to-end-test-results-path: end-to-end-test-results.json
steps:
- name: Checkout repository code
uses: actions/checkout@v3
- name: Install node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run unit test
run: npm run test:unit:ci -- output=${{ env.unit-test-results-path }}
- name: Publish unit test results
uses: dorny/test-reporter@v1
if: '!cancelled()'
with:
name: Unit test results (${{ matrix.runner }}, ${{ matrix.node-version }})
fail-on-error: false
path: ${{ env.unit-test-results-path }}
reporter: mocha-json
- name: Install python
uses: actions/setup-python@v4
with:
python-version: latest
- name: Install end-to-end dependencies
run: pipx install poetry
- name: End-to-end test
run: |
exec bash '${{ github.workspace }}/test/end-to-end/with-packaging.sh' \
--test-output "${{ env.end-to-end-test-results-path }}"
shell: bash
- name: Publish end-to-end test results
uses: dorny/test-reporter@v1
if: '!cancelled()'
with:
name: End-to-end test results (${{ matrix.runner }}, ${{ matrix.node-version }})
fail-on-error: false
path: ${{ env.end-to-end-test-results-path }}
reporter: mocha-json
publish:
needs: test
runs-on: ubuntu-latest
if: github.ref_name == 'main' || startsWith(github.ref_name, 'done')
name: Publish
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
steps:
- name: Checkout repository code
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Install node.js
uses: actions/setup-node@v3
with:
node-version: "lts/*"
- name: Install dependencies
run: npm ci
- name: Check release prerequisites
if: startsWith(github.ref_name, 'done')
run: npx semantic-release --dry-run
- name: Release
if: github.ref_name == 'main'
run: npx semantic-release