|
|
|
@ -1,10 +1,16 @@ |
|
|
|
name: Pull Request CI |
|
|
|
name: Push to Main CI |
|
|
|
|
|
|
|
on: |
|
|
|
pull_request: |
|
|
|
push: |
|
|
|
branches: |
|
|
|
- main |
|
|
|
|
|
|
|
permissions: |
|
|
|
contents: write |
|
|
|
packages: write |
|
|
|
|
|
|
|
jobs: |
|
|
|
build: |
|
|
|
build-and-package: |
|
|
|
runs-on: ubuntu-latest |
|
|
|
steps: |
|
|
|
- name: Checkout code |
|
|
|
@ -15,54 +21,37 @@ jobs: |
|
|
|
with: |
|
|
|
deno-version: v2.x |
|
|
|
|
|
|
|
- name: Install Dependencies |
|
|
|
# Commands will run from 'packages/web' |
|
|
|
working-directory: packages/web |
|
|
|
run: deno install |
|
|
|
|
|
|
|
- name: Cache Deno dependencies |
|
|
|
uses: actions/cache@v4 |
|
|
|
with: |
|
|
|
path: | |
|
|
|
~/.cache/deno |
|
|
|
./deno.lock |
|
|
|
key: ${{ runner.os }}-deno-${{ hashFiles('**/deno.lock') }} |
|
|
|
packages/web/deno.lock |
|
|
|
key: ${{ runner.os }}-deno-${{ hashFiles('packages/web/deno.lock') }} |
|
|
|
restore-keys: | |
|
|
|
${{ runner.os }}-deno- |
|
|
|
|
|
|
|
- name: Install Dependencies |
|
|
|
run: deno install |
|
|
|
|
|
|
|
- name: Cache Dependencies |
|
|
|
run: deno cache src/index.tsx |
|
|
|
working-directory: packages/web |
|
|
|
run: deno cache src/index.tsx |
|
|
|
|
|
|
|
- name: Get changed files |
|
|
|
id: changed-files |
|
|
|
uses: tj-actions/changed-files@v46 |
|
|
|
with: |
|
|
|
files: | |
|
|
|
**/*.ts |
|
|
|
**/*.tsx |
|
|
|
|
|
|
|
# Uncomment the following lines when you have figured out how to ignore files |
|
|
|
# - name: Type check changed files |
|
|
|
# if: steps.changed-files.outputs.all_changed_files != '' |
|
|
|
# run: deno check ${{ steps.changed-files.outputs.all_changed_files }} |
|
|
|
|
|
|
|
- name: Run linter on changed files |
|
|
|
if: steps.changed-files.outputs.all_changed_files != '' |
|
|
|
run: deno task lint ${{ steps.changed-files.outputs.all_changed_files }} |
|
|
|
- name: Run linter |
|
|
|
working-directory: packages/web |
|
|
|
run: deno task lint |
|
|
|
|
|
|
|
- name: Check format on changed files |
|
|
|
if: steps.changed-files.outputs.all_changed_files != '' |
|
|
|
run: deno task format --check ${{ steps.changed-files.outputs.all_changed_files }} |
|
|
|
- name: Check formatter |
|
|
|
working-directory: packages/web |
|
|
|
run: deno task format --check |
|
|
|
|
|
|
|
- name: Run tests |
|
|
|
working-directory: packages/web |
|
|
|
run: deno task test |
|
|
|
|
|
|
|
- name: Build Package |
|
|
|
run: deno task build |
|
|
|
|
|
|
|
- name: Compress build |
|
|
|
run: deno task package |
|
|
|
|
|
|
|
- name: Archive compressed build |
|
|
|
uses: actions/upload-artifact@v4 |
|
|
|
with: |
|
|
|
name: build |
|
|
|
path: dist/build.tar |
|
|
|
working-directory: packages/web |
|
|
|
run: deno task build |