Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: setup action #2

Merged
merged 3 commits into from
Aug 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
root = true

[*]
charset = utf-8
end_of_line = lf
indent_size = 2
indent_style = space
insert_final_newline = true
trim_trailing_whitespace = true
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
* @ronnnnn
12 changes: 12 additions & 0 deletions .github/actions/setup-bun/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
name: Setup Bun
description: Setup Bun

runs:
using: 'composite'
steps:
- name: Setup Bun
uses: oven-sh/setup-bun@4bc047ad259df6fc24a6c9b0f9a0cb08cf17fbe5 # v2.0.1

- name: Bun Install
shell: bash
run: bun i --frozen-lockfile
24 changes: 24 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Build

on:
pull_request:
types:
- opened
- synchronize

push:
branches:
- main

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: ./.github/actions/setup-bun

- name: Build
run: bun bake
22 changes: 22 additions & 0 deletions .github/workflows/lint-pr.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
name: Lint PR Title

on:
pull_request_target:
types:
- opened
- edited
- synchronize
- reopened

permissions:
pull-requests: read

jobs:
lint-pr:
runs-on: ubuntu-latest
steps:
- uses: amannn/action-semantic-pull-request@0723387faaf9b38adef4775cd42cfd5155ed6017 # v5.5.3
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
validateSingleCommit: true
23 changes: 23 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Lint

on:
pull_request:
types:
- opened
- synchronize

jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup Bun
uses: ./.github/actions/setup-bun

- name: Check Format
run: bun fmt:check

- name: Lint
run: bun lint
18 changes: 18 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
name: Release

on:
push:
branches:
- main

permissions:
contents: write
pull-requests: write

jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: GoogleCloudPlatform/release-please-action@v4
with:
release-type: node
97 changes: 97 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
name: Test

on:
pull_request:
types:
- opened
- synchronize

push:
branches:
- main

jobs:
test:
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
runs-on: ${{ matrix.os }}
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Setup FlutterGen (Cache save)
id: setup-fluttergen-cache-save
uses: ./
with:
version: 5.6.0
cache-key: fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ github.sha }}

- name: Setup FlutterGen (Cache restore)
id: setup-fluttergen-cache-restore
uses: ./
with:
version: 5.6.0
cache-key: fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ github.sha }}

- name: Setup FlutterGen (No cache restore and save)
id: setup-fluttergen-no-cache
uses: ./
with:
version: 5.6.0
cache: false

- name: Check output version
run: |
if [ "${{ steps.setup-fluttergen-no-cache.outputs.version }}" != "5.6.0" ]; then
echo "Version mismatch"
exit 1
fi

test-with-version-file:
strategy:
matrix:
file:
- name: .tool-versions (fluttergen 5.6.0)
file: .tool-versions
run: echo "fluttergen 5.6.0" > .tool-versions
- name: .tool-versions (fluttergen5.6.0)
file: .tool-versions
run: echo "fluttergen5.6.0" > .tool-versions
- name: .tool-versions (fluttergen 5.6.0)
file: .tool-versions
run: echo "fluttergen 5.6.0" > .tool-versions
- name: .mise.toml (fluttergen = '5.6.0')
file: .mise.toml
run: echo "[tools]\nfluttergen = '5.6.0'" > .mise.toml
- name: .mise.toml (fluttergen='5.6.0')
file: .mise.toml
run: echo "[tools]\nfluttergen='5.6.0'" > .mise.toml
- name: .mise.toml (fluttergen = '5.6.0')
file: .mise.toml
run: echo "[tools]\nfluttergen = '5.6.0'" > .mise.toml
- name: .mise.toml (fluttergen = "5.6.0")
file: .mise.toml
run: echo "[tools]\nfluttergen = \"5.6.0\"" > .mise.toml
runs-on: ubuntu-latest
continue-on-error: true
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Prepare version file
run: ${{ matrix.file.run }}

- name: Setup FlutterGen
id: setup-fluttergen
uses: ./

- name: Check output version
run: |
if [ "${{ steps.setup-fluttergen.outputs.version }}" != "5.6.0" ]; then
echo "Version mismatch"
exit 1
fi
9 changes: 9 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# misc
.DS_Store

# ide
.idea/
.vscode/

# node
node_modules/
1 change: 1 addition & 0 deletions .node-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
20.16.0
4 changes: 4 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
.github/CODEOWNERS
dist/
node_modules/
bun.lockb
1 change: 1 addition & 0 deletions .tool-versions
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
bun 1.1.24
32 changes: 32 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Contributing

## Installation

Install the tools listed in the `.tool-version` and `.node-version` files. You can easily set up the environment using either asdf or mise.

### asdf or mise

To install the tools using asdf, run the following command:

```shell
# asdf
asdf i

# mise
mise i
```

## Development

Setup development environment with `bun`.

```shell
bun i
```

Scripts are defined in `package.json`.
You can check available scripts.

```shell
bun run
```
30 changes: 30 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
<div align="center">

# setup-fluttergen

Install `fluttergen` command in GitHub Actions.

</div>

# Usage

```yaml
- uses: FluttterGen/setup-fluttergen@v1
with:
version: 5.6.0
```

# Inputs

| Name | Description | Required | Default |
| ---------- | -------------------------------------------------------------------------------------------------------------- | -------- | --------------------------------------------------------------- |
| version | FlutterGen version (optional, will be detected from project root .tool-versions or .mise.toml if not provided) | false | - |
| cache | Cache FlutterGen CLI | false | true |
| cache-key | Cache key for FlutterGen CLI | false | `fluttergen-${{ runner.os }}-${{ runner.arch }}-${{ version }}` |
| cache-path | Cache path for FlutterGen CLI | false | `${{ runner.tool_cache }}/.fluttergen` |

# Outputs

| Name | Description |
| ------- | ---------------------------- |
| version | Installed FlutterGen version |
26 changes: 26 additions & 0 deletions action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: 'Setup FlutterGen'
author: 'FlutterGen'
description: 'Set up FlutterGen CLI in your GitHub Actions workflow'
inputs:
version:
description: 'FlutterGen version (optional, will be detected from project root .tool-versions or .mise.toml if not provided)'
required: false
cache:
description: 'Cache FlutterGen CLI (default: true)'
required: false
default: 'true'
cache-key:
description: 'Cache key for FlutterGen CLI'
required: false
cache-path:
description: 'Cache path for FlutterGen CLI'
required: false
outputs:
version:
description: 'Installed FlutterGen version'
runs:
using: 'node20'
main: 'dist/index.js'
branding:
icon: 'package'
color: 'blue'
Binary file added bun.lockb
Binary file not shown.
Loading