Skip to content

Commit

Permalink
Git: Add CI GitHub workflow
Browse files Browse the repository at this point in the history
  • Loading branch information
johnyob committed Oct 16, 2023
1 parent 191f40c commit 0a5a903
Show file tree
Hide file tree
Showing 5 changed files with 178 additions and 4 deletions.
133 changes: 133 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
name: Continuous Integration

on:
pull_request:
push:
branches: [main]

jobs:
fmt:
name: Format
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
components: rustfmt
- uses: luisnquin/[email protected]

- name: Format (rustfmt)
run: make fmt-rust-check

- name: Format (prettier)
run: npx prettier --check .

- name: Format (Nix)
run: make fmt-nix-check

build:
name: Build (Cargo)
runs-on: ubuntu-latest
needs: fmt
steps:
- uses: actions/checkout@v4
- uses: actions-rs/toolchain@v1
with:
profile: minimal
override: true
- uses: actions/cache@v3
with:
path: |
~/.cargo/bin/
~/.cargo/registry/index/
~/.cargo/registry/cache/
~/.cargo/git/db/
target/
key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}

- name: Build
run: cargo build

build-docs:
name: Build Documentation
runs-on: ubuntu-latest
needs: fmt
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- name: Get npm cache directory
id: npm-cache-dir
shell: bash
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Configure npm cache
uses: actions/cache@v3
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci

- name: Build with VitePress
run: npm run docs:build

build-sdk:
name: Build TypeScript SDK
runs-on: ubuntu-latest
needs: fmt
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v3
with:
node-version: 18
cache: npm
- name: Get npm cache directory
id: npm-cache-dir
shell: bash
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- name: Configure npm cache
uses: actions/cache@v3
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci

- name: Build
run: cd packages/jstz && npm run build

build-nix:
name: Build (Nix)
runs-on: ubuntu-latest
needs: [build, build-sdk, build-docs]
steps:
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v20
with:
nix_path: nixpkgs=channel:nixos-unstable
- uses: cachix/cachix-action@v12
with:
name: trilitech-jstz
authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}"

- name: Build Shell
run: nix develop --command bash -c "echo 'Hello World'"

- name: Build
run: nix build

- name: Upload artifact
uses: actions/upload-artifact@v3
with:
name: kernel
path: result/lib
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,4 @@ node_modules/
**/.vitepress/cache
**/.vitepress/dist

**/dist
**/dist
15 changes: 15 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -42,17 +42,32 @@ clean:
rm -f result
rm -rf logs

.PHONY: fmt-nix-check
fmt-nix-check:
@alejandra check ./

.PHONY: fmt-nix
fmt-nix:
@alejandra ./

.PHONY: fmt-rust-check
fmt-rust-check:
@cargo fmt --check

.PHONY: fmt-rust
fmt-rust:
@cargo fmt

.PHONY: fmt-js-check
fmt-js-check:
npm run check:format

.PHONY: fmt-js
fmt-js:
npm run format

.PHONY: fmt
fmt: fmt-nix fmt-rust fmt-js

.PHONY: fmt-check
fmt: fmt-nix-check fmt-rust-check fmt-js-check
30 changes: 28 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,4 @@
"vitepress": "^1.0.0-rc.20",
"esbuild": "^0.19.4"
}
}
}

0 comments on commit 0a5a903

Please sign in to comment.