Skip to content

Add yasunori職人の朝は早い #255

Add yasunori職人の朝は早い

Add yasunori職人の朝は早い #255

Workflow file for this run

name: Check
on:
pull_request:
jobs:
changes:
name: Check Changes
runs-on: ubuntu-latest
outputs:
clojure-yasunori: ${{ steps.filter.outputs.clojure-yasunori }}
steps:
- uses: actions/checkout@v4
- name: filter
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
clojure-yasunori:
- 'packages/clojure-yasunori/**'
lint-github-actions:
name: Lint GitHub Actions
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run actionlint
shell: bash
run: |
bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
./actionlint -color
nix-flake:
name: Nix Flake Check
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v4
- name: prepare nix
uses: cachix/install-nix-action@v29
- name: flake check
run: nix flake check
nix-flake-build:
name: Nix Flake Build
strategy:
matrix:
os: [ ubuntu-latest, macos-latest ]
runs-on: ${{ matrix.os }}
steps:
- name: checkout
uses: actions/checkout@v4
- name: prepare nix
uses: cachix/install-nix-action@v29
- name: prepare cachix
uses: cachix/cachix-action@v15
with:
name: times-yasunori
authToken: ${{ secrets.CACHIX_AUTH_TOKEN }}
- name: build devShell
run: nix develop -L
- name: build packages
run: |
nix build -L .#yasunori-cli
nix build -L .#yasunori-net
lint-awesome-yasunori:
name: Lint Awesome Yasunori
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- run: |
#!/usr/bin/env bash
set -euo pipefail
mkdir -p "${HOME}"/bin
echo "PATH=${HOME}/bin:${PATH}" >> "${GITHUB_ENV}"
curl \
--show-error \
--silent \
--location \
--fail \
--retry 3 \
--connect-timeout 5 \
--max-time 60 \
--output "${HOME}/bin/yj" \
"https://github.com/sclevine/yj/releases/download/v5.1.0/yj-linux-amd64"
chmod +x "${HOME}"/bin/yj
npm install -g ajv-cli
- run: yj -tj < yasunori.toml > yasunori.json
- run: npx ajv validate -s schema.json -d yasunori.json
test-api:
name: Test API
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/api
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Setup
run: pnpm run generate:json
- name: Test
run: pnpm test
test-web:
name: Test Web
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/web
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Test
run: pnpm test
lint-api-and-web:
name: Lint API & Web
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v4
- name: Install dependencies
run: pnpm install --frozen-lockfile
- name: Typecheck
run: pnpm run typecheck
- name: Lint
run: pnpm run lint
test-YasunoriDotNET:
name: Build & Test Yasunori.NET
runs-on: ubuntu-latest
defaults:
run:
working-directory: packages/Yasunori.NET
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: 8.0.x
- name: Restore dependencies
run: dotnet restore
- name: Build
run: dotnet build --no-restore
- name: Test
run: dotnet test --no-build --verbosity normal
test-clojure-yasunori:
name: Build & Test clojure-yasunori
runs-on: ubuntu-latest
needs: changes
if: ${{ needs.changes.outputs.clojure-yasunori == 'true' }}
defaults:
run:
working-directory: packages/clojure-yasunori
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: 'graalvm'
java-version: '22'
- uses: DeLaGuardo/setup-clojure@12.5
with:
cli: 1.11.4.1474
- uses: actions/cache@v4
with:
path: |
~/.m2/repository
~/.gitlibs
~/.deps.clj
key: cljdeps-${{ hashFiles('deps.edn') }}
restore-keys: cljdeps-
- name: Build
run: make build
- name: Build native
run: make build.native
- name: Test
run: make test