Skip to content

Commit f14222a

Browse files
committed
feat: setup FlutterGen action
1 parent d1574be commit f14222a

File tree

12 files changed

+64672
-9
lines changed

12 files changed

+64672
-9
lines changed

.github/actions/setup-bun/action.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: Setup Bun
2+
description: Setup Bun
3+
4+
runs:
5+
using: 'composite'
6+
steps:
7+
- name: Setup Bun
8+
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1
9+
10+
- name: Bun Install
11+
shell: bash
12+
run: bun i --frozen-lockfile

.github/workflows/build.yml

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
name: Build
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- synchronize
8+
9+
push:
10+
branches:
11+
- main
12+
13+
jobs:
14+
build:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v4
19+
20+
- name: Setup Bun
21+
uses: ./.github/actions/setup-bun
22+
23+
- name: Build
24+
run: bun bake

.github/workflows/lint.yml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
name: Lint
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- synchronize
8+
9+
jobs:
10+
lint:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout
14+
uses: actions/checkout@v4
15+
16+
- name: Setup Bun
17+
uses: ./.github/actions/setup-bun
18+
19+
- name: Check Format
20+
run: bun fmt:check
21+
22+
- name: Lint
23+
run: bun lint

.github/workflows/test.yml

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
name: Test
2+
3+
on:
4+
pull_request:
5+
types:
6+
- opened
7+
- synchronize
8+
9+
push:
10+
branches:
11+
- main
12+
13+
jobs:
14+
test:
15+
strategy:
16+
matrix:
17+
os:
18+
- ubuntu-latest
19+
- macos-latest
20+
runs-on: ${{ matrix.os }}
21+
continue-on-error: true
22+
steps:
23+
- name: Checkout
24+
uses: actions/checkout@v4
25+
26+
- name: Setup FlutterGen (Cache save)
27+
id: setup-fluttergen-cache-save
28+
uses: ./
29+
with:
30+
version: 5.6.0
31+
cache-key: fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ github.sha }}
32+
33+
- name: Setup FlutterGen (Cache restore)
34+
id: setup-fluttergen-cache-restore
35+
uses: ./
36+
with:
37+
version: 5.6.0
38+
cache-key: fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ github.sha }}
39+
40+
- name: Setup FlutterGen (No cache restore and save)
41+
id: setup-fluttergen-no-cache
42+
uses: ./
43+
with:
44+
version: 5.6.0
45+
cache: false
46+
47+
- name: Check output version
48+
run: |
49+
if [ "${{ steps.setup-fluttergen-no-cache.outputs.version }}" != "5.6.0" ]; then
50+
echo "Version mismatch"
51+
exit 1
52+
fi
53+
54+
test-with-version-file:
55+
strategy:
56+
matrix:
57+
file:
58+
- name: .tool-versions (fluttergen 5.6.0)
59+
file: .tool-versions
60+
run: echo "fluttergen 5.6.0" > .tool-versions
61+
- name: .tool-versions (fluttergen5.6.0)
62+
file: .tool-versions
63+
run: echo "fluttergen5.6.0" > .tool-versions
64+
- name: .tool-versions (fluttergen 5.6.0)
65+
file: .tool-versions
66+
run: echo "fluttergen 5.6.0" > .tool-versions
67+
- name: .mise.toml (fluttergen = '5.6.0')
68+
file: .mise.toml
69+
run: echo "[tools]\nfluttergen = '5.6.0'" > .mise.toml
70+
- name: .mise.toml (fluttergen='5.6.0')
71+
file: .mise.toml
72+
run: echo "[tools]\nfluttergen='5.6.0'" > .mise.toml
73+
- name: .mise.toml (fluttergen = '5.6.0')
74+
file: .mise.toml
75+
run: echo "[tools]\nfluttergen = '5.6.0'" > .mise.toml
76+
- name: .mise.toml (fluttergen = "5.6.0")
77+
file: .mise.toml
78+
run: echo "[tools]\nfluttergen = \"5.6.0\"" > .mise.toml
79+
runs-on: ubuntu-latest
80+
continue-on-error: true
81+
steps:
82+
- name: Checkout
83+
uses: actions/checkout@v4
84+
85+
- name: Prepare version file
86+
run: ${{ matrix.file.run }}
87+
88+
- name: Setup FlutterGen
89+
id: setup-fluttergen
90+
uses: ./
91+
92+
- name: Check output version
93+
run: |
94+
if [ "${{ steps.setup-fluttergen.outputs.version }}" != "5.6.0" ]; then
95+
echo "Version mismatch"
96+
exit 1
97+
fi

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
dist/
2+
node_modules/
3+
bun.lockb

action.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
name: 'Setup FlutterGen'
2+
author: 'FlutterGen'
3+
description: 'Set up FlutterGen CLI in your GitHub Actions workflow'
4+
inputs:
5+
version:
6+
description: 'FlutterGen version (optional, will be detected from project root .tool-versions or .mise.toml if not provided)'
7+
required: false
8+
cache:
9+
description: 'Cache FlutterGen CLI (default: true)'
10+
required: false
11+
default: 'true'
12+
cache-key:
13+
description: 'Cache key for FlutterGen CLI'
14+
required: false
15+
cache-path:
16+
description: 'Cache path for FlutterGen CLI'
17+
required: false
18+
outputs:
19+
version:
20+
description: 'Installed FlutterGen version'
21+
runs:
22+
using: 'node20'
23+
main: 'dist/index.js'
24+
branding:
25+
icon: 'package'
26+
color: 'blue'

bun.lockb

131 KB
Binary file not shown.

0 commit comments

Comments
 (0)