From ea16edaefb898ee2370c09f666bbff8bec021585 Mon Sep 17 00:00:00 2001 From: hasundue Date: Mon, 29 Jul 2024 14:10:09 +0900 Subject: [PATCH] ci: add build step for deno_lockfile, etc. --- .github/workflows/ci.yml | 90 ++++++++++++++++++++++++++++++++++------ 1 file changed, 77 insertions(+), 13 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c54e72de..355ebb80 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,19 +11,83 @@ on: permissions: contents: read +defaults: + run: + shell: bash + jobs: test: name: Test - uses: hasundue/actions/.github/workflows/test-deno.yml@main - secrets: - CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} - with: - task: test:unit - submodules: true - - integration: - name: Integration - uses: hasundue/actions/.github/workflows/integration-deno.yml@main - with: - task: test:integration - submodules: true + + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + + runs-on: ${{ matrix.os }} + + steps: + - name: Checkout + uses: actions/checkout@v4 + with: + submodules: true + + - name: Setup Deno + uses: denoland/setup-deno@v1 + + - name: Setup actions/cache for Deno + uses: actions/cache@v4 + with: + path: | + ~/.cache/deno + ~/Library/Caches/deno + ~/AppData/Local/deno + key: ${{ matrix.os }}-deno-${{ hashFiles('./deno.lock') }} + restore-keys: ${{ matrix.os }}-deno + + - name: Setup actions/cache for Cargo + uses: actions/cache@v4 + with: + path: | + ~/.cargo + ./core/deno_lockfile/target + key: ${{ matrix.os }}-cargo-${{ hashFiles('./**/Cargo.lock') }} + restore-keys: ${{ matrix.os }}-cargo + + - name: Build core/deno_lockfile + run: | + cd core/deno_lockfile + deno task build + + - name: Check format + if: matrix.os == 'ubuntu-latest' + run: deno fmt --check + + - name: Cache dependencies + run: deno task cache + + - name: Check lint + if: matrix.os == 'ubuntu-latest' + run: deno lint + + - name: Check types + if: matrix.os == 'ubuntu-latest' + run: deno task check + + - name: Run tests + run: deno task test --coverage=./coverage_profile + env: + GITHUB_TOKEN: ${{ secrets.GH_TOKEN }} + + - name: Create coverage report + run: deno coverage ./coverage_profile --lcov --output=./coverage.lcov + + - name: Upload to Codecov + uses: codecov/codecov-action@v4 + with: + directory: ./ + file: ./coverage.lcov + token: ${{ secrets.CODECOV_TOKEN }}