Skip to content

Commit 0ed898a

Browse files
authored
Merge pull request #2 from FlutterGen/feat-setup-action
feat: setup action
2 parents 7556467 + 7304a10 commit 0ed898a

23 files changed

+64861
-0
lines changed

.editorconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*]
4+
charset = utf-8
5+
end_of_line = lf
6+
indent_size = 2
7+
indent_style = space
8+
insert_final_newline = true
9+
trim_trailing_whitespace = true

.github/CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
* @ronnnnn

.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-pr.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: Lint PR Title
2+
3+
on:
4+
pull_request_target:
5+
types:
6+
- opened
7+
- edited
8+
- synchronize
9+
- reopened
10+
11+
permissions:
12+
pull-requests: read
13+
14+
jobs:
15+
lint-pr:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
19+
env:
20+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
21+
with:
22+
validateSingleCommit: true

.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/release.yml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
8+
permissions:
9+
contents: write
10+
pull-requests: write
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: GoogleCloudPlatform/release-please-action@v4
17+
with:
18+
release-type: node

.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

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# misc
2+
.DS_Store
3+
4+
# ide
5+
.idea/
6+
.vscode/
7+
8+
# node
9+
node_modules/

.node-version

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
20.16.0

.prettierignore

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

.tool-versions

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
bun 1.1.24

CONTRIBUTING.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Contributing
2+
3+
## Installation
4+
5+
Install the tools listed in the `.tool-version` and `.node-version` files. You can easily set up the environment using either asdf or mise.
6+
7+
### asdf or mise
8+
9+
To install the tools using asdf, run the following command:
10+
11+
```shell
12+
# asdf
13+
asdf i
14+
15+
# mise
16+
mise i
17+
```
18+
19+
## Development
20+
21+
Setup development environment with `bun`.
22+
23+
```shell
24+
bun i
25+
```
26+
27+
Scripts are defined in `package.json`.
28+
You can check available scripts.
29+
30+
```shell
31+
bun run
32+
```

README.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
<div align="center">
2+
3+
# setup-fluttergen
4+
5+
Install `fluttergen` command in GitHub Actions.
6+
7+
</div>
8+
9+
# Usage
10+
11+
```yaml
12+
- uses: FluttterGen/setup-fluttergen@v1
13+
with:
14+
version: 5.6.0
15+
```
16+
17+
# Inputs
18+
19+
| Name | Description | Required | Default |
20+
| ---------- | -------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------- |
21+
| version | FlutterGen version (optional, will be detected from project root .tool-versions or .mise.toml if not provided) | false | - |
22+
| cache | Cache FlutterGen CLI | false | true |
23+
| cache-key | Cache key for FlutterGen CLI | false | `fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ version }}` |
24+
| cache-path | Cache path for FlutterGen CLI | false | `${{ runner.tool_cache }}/.fluttergen` |
25+
26+
# Outputs
27+
28+
| Name | Description |
29+
| ------- | ---------------------------- |
30+
| version | Installed FlutterGen version |

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

162 KB
Binary file not shown.

0 commit comments

Comments
 (0)