Browse Source

update github actions with monorepo support

pull/682/head
Dan Ditomaso 1 year ago
parent
commit
8232c0afcf
  1. 2
      .github/workflows/ci.yml
  2. 8
      .github/workflows/nightly.yml
  3. 65
      .github/workflows/pr.yml
  4. 8
      .github/workflows/release.yml

2
.github/workflows/ci.yml

@ -35,7 +35,7 @@ jobs:
${{ runner.os }}-deno-
- name: Cache Dependencies
run: deno cache src/index.tsx
run: deno cache /packages/web/src/index.tsx
- name: Run linter
run: deno task lint

8
.github/workflows/nightly.yml

@ -21,22 +21,26 @@ jobs:
deno-version: v2.x
- name: Install Dependencies
working-directory: packages/web
run: deno install
- name: Run tests
working-directory: packages/web
run: deno task test
- name: Build Package
working-directory: packages/web
run: deno task build
- name: Package Output
working-directory: packages/web
run: deno task package
- name: Archive compressed build
uses: actions/upload-artifact@v4
with:
name: build
path: dist/build.tar
path: packages/web/dist/build.tar
- name: Set up QEMU
uses: docker/setup-qemu-action@v3

65
.github/workflows/pr.yml

@ -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

8
.github/workflows/release.yml

@ -21,26 +21,30 @@ jobs:
deno-version: v2.x
- name: Install Dependencies
working-directory: packages/web
run: deno install
- name: Run tests
working-directory: packages/web
run: deno task test
- name: Build Package
working-directory: packages/web
run: deno task build
- name: Package Output
working-directory: packages/web
run: deno task package
- name: Archive compressed build
uses: actions/upload-artifact@v4
with:
name: build
path: dist/build.tar
path: packages/web/dist/build.tar
- name: Attach build.tar to release
run: |
gh release upload ${{ github.event.release.tag_name }} dist/build.tar
gh release upload ${{ github.event.release.tag_name }} packages/web/dist/build.tar
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

Loading…
Cancel
Save