-
Notifications
You must be signed in to change notification settings - Fork 0
148 lines (122 loc) · 3.76 KB
/
validate.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: validate
on: [push]
concurrency:
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true
env:
CARGO_TERM_COLOR: always
RUST_BACKTRACE: full
jobs:
lint:
name: lint
strategy:
matrix:
os:
- windows-latest
- macos-latest
- ubuntu-latest
# TODO: remove once macos-latest is upgraded to an arm machine
- macos-14
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
- run: rustup toolchain install stable --profile minimal
- run: rustup component add rustfmt clippy
- run: cargo fetch
- run: cargo fmt -- --check --color always
- run: cargo clippy
test:
name: test
strategy:
matrix:
os:
- ubuntu-latest
node:
- 20
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: Swatinem/rust-cache@v2
# gleam_format, mix_format
# NOTE: should be first since it is sometimes crashes (?)
- uses: erlef/setup-beam@v1
with:
otp-version: "26"
gleam-version: "1.0.0"
elixir-version: "1.16.1"
# ruff, sqlfluff, black, blue, yapf, autopep8
- uses: actions/setup-python@v5
with:
cache: "pip"
# biome, prettier, stylua, sql-formatter
- uses: actions/setup-node@v4
with:
node-version: ${{ matrix.node }}
# nimpretty
- uses: jiro4989/setup-nim-action@v1
# zigfmt
- uses: goto-bus-stop/setup-zig@v2
# taplo
- uses: uncenter/setup-taplo@v1
# shfmt, gofmt, gofumpt
- uses: actions/setup-go@v5
with:
go-version: "stable"
# rubocop
- uses: ruby/setup-ruby@v1
with:
ruby-version: "3.3"
# dart_format
- uses: dart-lang/setup-dart@v1
# crystal_format
- uses: crystal-lang/install-crystal@v1
# roc_format
- uses: hasnep/[email protected]
# deno_fmt
- uses: denoland/setup-deno@v1
with:
deno-version: v1.x
# just_fmt
- uses: taiki-e/install-action@just
- run: rustup toolchain install stable --profile minimal
- run: rustup component add rustfmt clippy
- name: Validate taplo
run: taplo --version
- name: Install ruff
run: pip install ruff && ruff --version
- name: Install sqlfluff
run: pip install sqlfluff && sqlfluff format --version
- name: Validate biome
run: npx --yes @biomejs/biome --version
- name: Validate prettier
run: npx --yes prettier --version
- name: Validate nimpretty
run: nimpretty --version
- name: Validate zig fmt
run: zig fmt --help
- name: Validate gleam format
run: gleam format --help
- name: Validate mix format
run: mix help format
- name: Install rubocop
run: gem install rubocop && rubocop --version
- name: Install stylua
run: cargo install stylua && stylua --version
- name: Install shfmt
run: go install mvdan.cc/sh/v3/cmd/shfmt@latest && shfmt --version
- name: Install gofumpt
run: go install mvdan.cc/gofumpt@latest && gofumpt --version
- name: Install black
run: pip install black && black --version
- name: Install blue
run: pip install blue && blue --version
- name: Install yapf
run: pip install yapf && yapf --version
- name: Install autopep
run: pip install autopep8 && autopep8 --version
- name: Install clang-format
run: pip install clang-format && clang-format --version
- run: pip install isort
- run: pip install usort
- run: cargo test