Skip to content

speed up ci

speed up ci #702

Workflow file for this run

name: Continuous Integration
on:
push:
branches:
- main
pull_request:
branches:
- main
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
security-audit:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Install Snyk
uses: snyk/actions/setup@3e2680e8df93a24b52d119b1305fb7cedc60ceae # latest master (no released tag)
- name: Snyk VULN and License Check Test
run: snyk test --all-projects --sarif-file-output=snyk.sarif
env:
SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }}
- name: Report known vulnerabilities
run: npm audit
- name: Upload SARIF result to GitHub Code Scanning
uses: github/codeql-action/upload-sarif@74483a38d39275f33fcff5f35b679b5ca4a26a99 # v2.22.5
if: always()
with:
sarif_file: snyk.sarif
test-with-node:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Build all workspace packages
run: npm run build
- name: Run linter for all packages
run: npm run lint --ws
- name: Start dwn-server container
run: cd packages/dev-env && docker-compose up -d
- name: Wait for dwn-server to be ready
run: until curl -sf http://localhost:3000/health; do echo -n .; sleep .1; done
- name: Run tests for all packages
run: npm run test:node --ws -- --color
env:
TEST_DWN_URL: http://localhost:3000
- name: Upload test coverage to Codecov
uses: codecov/codecov-action@eaaf4bedf32dbdc6b720b63067d99c4d77d6047d # v3.1.4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
test-with-browsers:
# Run browser tests using macOS so that WebKit tests don't fail under a Linux environment
runs-on: macos-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: 18
registry-url: https://registry.npmjs.org/
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Get Playwright Version (for cache)
id: get-playwright-version
run: |
version=$(npm view @playwright/test version)
echo "::set-output name=playwright_version::$version"
- name: Restore Cached Playwright Browsers
id: cache-playwright-restore
uses: actions/cache/restore@v3
with:
path: ~/Library/Caches/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.get-playwright-version.outputs.playwright_version }}
- name: Install Playwright Browsers (if no cache)
if: steps.cache-playwright-browsers.outputs.cache-hit != 'true'
run: npx playwright install --with-deps
- name: Save Playwright Cache
uses: actions/cache/save@v3
id: cache
with:
path: ~/Library/Caches/ms-playwright
key: ${{ runner.os }}-playwright-${{ steps.get-playwright-version.outputs.playwright_version }}
- name: Build all workspace packages
run: npm run build
- name: Install docker
run: brew install docker && brew install docker-compose # && colima start
- name: Start docker
run: colima start
- name: Start dwn-server container
run: cd packages/dev-env && docker-compose up -d
- name: Wait for dwn-server to be ready
run: until curl -sf http://localhost:3000/health; do echo -n .; sleep .1; done
- name: Run tests for all packages
run: npm run test:browser --ws
web5-spec:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- uses: TBD54566975/[email protected]