Test app #4
Workflow file for this run
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 app | |
on: | |
pull_request: | |
paths: | |
- "app/**" | |
env: | |
CACHE_PATH: | | |
app/node_modules | |
defaults: | |
run: | |
working-directory: ./app | |
jobs: | |
# build cache for rest of jobs | |
install-cache: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- if: runner.debug == '1' | |
uses: mxschmitt/action-tmate@v3 | |
- name: Install packages | |
run: bun install | |
- name: Define cache key | |
id: define-key | |
run: echo "key=${{ hashFiles('app/bun.lockb') }}" >> $GITHUB_OUTPUT | |
- name: Store cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.CACHE_PATH }} | |
key: ${{ steps.define-key.outputs.key }} | |
outputs: | |
cache-key: ${{ steps.define-key.outputs.key }} | |
# test that app can build without issues | |
test-build: | |
runs-on: ubuntu-latest | |
needs: install-cache | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- name: Restore cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.CACHE_PATH }} | |
key: ${{ needs.install-cache.outputs.cache-key }} | |
- if: runner.debug == '1' | |
uses: mxschmitt/action-tmate@v3 | |
- name: Run test | |
run: bun run build | |
# test that app has no typescript errors | |
test-types: | |
runs-on: ubuntu-latest | |
needs: install-cache | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- name: Restore cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.CACHE_PATH }} | |
key: ${{ needs.install-cache.outputs.cache-key }} | |
- if: runner.debug == '1' | |
uses: mxschmitt/action-tmate@v3 | |
- name: Run test | |
run: bun run test:types | |
# test that app is properly formatted and linted | |
test-lint: | |
runs-on: ubuntu-latest | |
needs: install-cache | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Set up Bun | |
uses: oven-sh/setup-bun@v1 | |
- name: Restore cache | |
uses: actions/cache@v4 | |
with: | |
path: ${{ env.CACHE_PATH }} | |
key: ${{ needs.install-cache.outputs.cache-key }} | |
- if: runner.debug == '1' | |
uses: mxschmitt/action-tmate@v3 | |
- name: Run test | |
run: bun run test:lint |