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- ${{ runner.os }}-deno-
- name: Cache Dependencies - name: Cache Dependencies
run: deno cache src/index.tsx run: deno cache /packages/web/src/index.tsx
- name: Run linter - name: Run linter
run: deno task lint run: deno task lint

8
.github/workflows/nightly.yml

@ -21,22 +21,26 @@ jobs:
deno-version: v2.x deno-version: v2.x
- name: Install Dependencies - name: Install Dependencies
working-directory: packages/web
run: deno install run: deno install
- name: Run tests - name: Run tests
working-directory: packages/web
run: deno task test run: deno task test
- name: Build Package - name: Build Package
working-directory: packages/web
run: deno task build run: deno task build
- name: Package Output - name: Package Output
working-directory: packages/web
run: deno task package run: deno task package
- name: Archive compressed build - name: Archive compressed build
uses: actions/upload-artifact@v4 uses: actions/upload-artifact@v4
with: with:
name: build name: build
path: dist/build.tar path: packages/web/dist/build.tar
- name: Set up QEMU - name: Set up QEMU
uses: docker/setup-qemu-action@v3 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: on:
pull_request: push:
branches:
- main
permissions:
contents: write
packages: write
jobs: jobs:
build: build-and-package:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Checkout code - name: Checkout code
@ -15,54 +21,37 @@ jobs:
with: with:
deno-version: v2.x deno-version: v2.x
- name: Install Dependencies
# Commands will run from 'packages/web'
working-directory: packages/web
run: deno install
- name: Cache Deno dependencies - name: Cache Deno dependencies
uses: actions/cache@v4 uses: actions/cache@v4
with: with:
path: | path: |
~/.cache/deno ~/.cache/deno
./deno.lock packages/web/deno.lock
key: ${{ runner.os }}-deno-${{ hashFiles('**/deno.lock') }} key: ${{ runner.os }}-deno-${{ hashFiles('packages/web/deno.lock') }}
restore-keys: | restore-keys: |
${{ runner.os }}-deno- ${{ runner.os }}-deno-
- name: Install Dependencies
run: deno install
- name: Cache Dependencies - name: Cache Dependencies
run: deno cache src/index.tsx working-directory: packages/web
run: deno cache src/index.tsx
- name: Get changed files - name: Run linter
id: changed-files working-directory: packages/web
uses: tj-actions/changed-files@v46 run: deno task lint
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: Check format on changed files - name: Check formatter
if: steps.changed-files.outputs.all_changed_files != '' working-directory: packages/web
run: deno task format --check ${{ steps.changed-files.outputs.all_changed_files }} run: deno task format --check
- name: Run tests - name: Run tests
working-directory: packages/web
run: deno task test run: deno task test
- name: Build Package - name: Build Package
run: deno task build working-directory: packages/web
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

8
.github/workflows/release.yml

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

Loading…
Cancel
Save