mcp-remote/.github/workflows/ci.yml
Minoru Mizutani 91ff0e5a3e
Setup CI
2025-04-29 16:34:28 +09:00

131 lines
2.9 KiB
YAML

name: CI
on:
push:
branches: [main]
paths:
- '**/*'
- '!**/*.md'
- '!.github/**'
- '.github/workflows/ci.yml'
pull_request:
branches: [main]
paths:
- '**/*'
- '!**/*.md'
- '!.github/**'
- '.github/workflows/ci.yml'
permissions:
contents: read
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false
jobs:
format:
runs-on: ubuntu-24.04-arm
steps:
- name: Setup repo
uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Cache Deno dependencies
uses: actions/cache@v4
with:
path: |
~/.deno
~/.cache/deno
key: ${{ runner.os }}-deno-${{ hashFiles('deno.lock') }}
restore-keys: |
${{ runner.os }}-deno-
- name: Verify formatting
run: deno fmt src/ tests/ --check
lint:
runs-on: ubuntu-24.04-arm
steps:
- name: Setup repo
uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Cache Deno dependencies
uses: actions/cache@v4
with:
path: |
~/.deno
~/.cache/deno
key: ${{ runner.os }}-deno-${{ hashFiles('deno.lock') }}
restore-keys: |
${{ runner.os }}-deno-
- name: Run linter
run: deno lint
typecheck:
runs-on: ubuntu-24.04-arm
steps:
- name: Setup repo
uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Cache Deno dependencies
uses: actions/cache@v4
with:
path: |
~/.deno
~/.cache/deno
key: ${{ runner.os }}-deno-${{ hashFiles('deno.lock') }}
restore-keys: |
${{ runner.os }}-deno-
- name: Run type check
run: deno check src/**/*.ts tests/**/*.ts
test:
runs-on: ubuntu-24.04-arm
steps:
- name: Setup repo
uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: v1.x
- name: Cache Deno dependencies
uses: actions/cache@v4
with:
path: |
~/.deno
~/.cache/deno
key: ${{ runner.os }}-deno-${{ hashFiles('deno.lock') }}
restore-keys: |
${{ runner.os }}-deno-
- name: Run tests
run: deno task test
- name: Generate coverage
run: deno coverage coverage --exclude="node_modules/"
- name: Upload coverage reports
uses: codecov/codecov-action@v4
with:
directory: ./coverage/
fail_ci_if_error: false
token: ${{ secrets.CODECOV_TOKEN }}