Skip to content

Commit 5f49246

Browse files
committed
ci: add GitHub Actions workflow and CONTRIBUTING.md
1 parent 12f3989 commit 5f49246

File tree

3 files changed

+220
-1
lines changed

3 files changed

+220
-1
lines changed

.github/workflows/ci.yml

Lines changed: 142 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,142 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main, dev]
6+
pull_request:
7+
branches: [main, dev]
8+
9+
# flutter_secure_dotenv ^2.0.0 is not yet on pub.dev. We check out its
10+
# matching branch and generate a pubspec_overrides.yaml that redirects
11+
# the hosted dependency to the local checkout.
12+
#
13+
# Once flutter_secure_dotenv is published, simplify back to a single
14+
# checkout and remove the override steps.
15+
#
16+
# Push order: flutter_secure_dotenv first, then this repo.
17+
18+
jobs:
19+
analyze:
20+
name: Analyze
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
with:
25+
path: flutter_secure_dotenv_generator
26+
- uses: actions/checkout@v4
27+
with:
28+
repository: mfazrinizar/flutter_secure_dotenv
29+
ref: ${{ github.base_ref || github.ref_name }}
30+
path: flutter_secure_dotenv
31+
- uses: dart-lang/setup-dart@v1
32+
with:
33+
sdk: stable
34+
- name: Override flutter_secure_dotenv to local path
35+
shell: bash
36+
run: |
37+
cat > pubspec_overrides.yaml << 'EOF'
38+
dependency_overrides:
39+
flutter_secure_dotenv:
40+
path: ../flutter_secure_dotenv
41+
EOF
42+
working-directory: flutter_secure_dotenv_generator
43+
- run: dart pub get
44+
working-directory: flutter_secure_dotenv_generator
45+
- run: dart format --set-exit-if-changed .
46+
working-directory: flutter_secure_dotenv_generator
47+
- run: dart analyze --fatal-infos
48+
working-directory: flutter_secure_dotenv_generator
49+
50+
test:
51+
name: Test
52+
runs-on: ${{ matrix.os }}
53+
strategy:
54+
matrix:
55+
os: [ubuntu-latest, windows-latest, macos-latest]
56+
sdk: [stable, "3.8.0"]
57+
steps:
58+
- uses: actions/checkout@v4
59+
with:
60+
path: flutter_secure_dotenv_generator
61+
- uses: actions/checkout@v4
62+
with:
63+
repository: mfazrinizar/flutter_secure_dotenv
64+
ref: ${{ github.base_ref || github.ref_name }}
65+
path: flutter_secure_dotenv
66+
- uses: dart-lang/setup-dart@v1
67+
with:
68+
sdk: ${{ matrix.sdk }}
69+
- name: Override flutter_secure_dotenv to local path
70+
shell: bash
71+
run: |
72+
cat > pubspec_overrides.yaml << 'EOF'
73+
dependency_overrides:
74+
flutter_secure_dotenv:
75+
path: ../flutter_secure_dotenv
76+
EOF
77+
working-directory: flutter_secure_dotenv_generator
78+
- run: dart pub get
79+
working-directory: flutter_secure_dotenv_generator
80+
- run: dart test
81+
working-directory: flutter_secure_dotenv_generator
82+
83+
dry-run:
84+
name: Publish Dry Run
85+
runs-on: ubuntu-latest
86+
needs: [analyze, test]
87+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
88+
steps:
89+
- uses: actions/checkout@v4
90+
with:
91+
path: flutter_secure_dotenv_generator
92+
- uses: actions/checkout@v4
93+
with:
94+
repository: mfazrinizar/flutter_secure_dotenv
95+
ref: main
96+
path: flutter_secure_dotenv
97+
- uses: dart-lang/setup-dart@v1
98+
with:
99+
sdk: stable
100+
- name: Override flutter_secure_dotenv to local path
101+
shell: bash
102+
run: |
103+
cat > pubspec_overrides.yaml << 'EOF'
104+
dependency_overrides:
105+
flutter_secure_dotenv:
106+
path: ../flutter_secure_dotenv
107+
EOF
108+
working-directory: flutter_secure_dotenv_generator
109+
- run: dart pub get
110+
working-directory: flutter_secure_dotenv_generator
111+
- run: dart pub publish --dry-run
112+
working-directory: flutter_secure_dotenv_generator
113+
114+
pana:
115+
name: Package Analysis
116+
runs-on: ubuntu-latest
117+
steps:
118+
- uses: actions/checkout@v4
119+
with:
120+
path: flutter_secure_dotenv_generator
121+
- uses: actions/checkout@v4
122+
with:
123+
repository: mfazrinizar/flutter_secure_dotenv
124+
ref: ${{ github.base_ref || github.ref_name }}
125+
path: flutter_secure_dotenv
126+
- uses: dart-lang/setup-dart@v1
127+
with:
128+
sdk: stable
129+
- run: dart pub global activate pana
130+
- name: Override flutter_secure_dotenv to local path
131+
shell: bash
132+
run: |
133+
cat > pubspec_overrides.yaml << 'EOF'
134+
dependency_overrides:
135+
flutter_secure_dotenv:
136+
path: ../flutter_secure_dotenv
137+
EOF
138+
working-directory: flutter_secure_dotenv_generator
139+
- run: dart pub get
140+
working-directory: flutter_secure_dotenv_generator
141+
- run: dart pub global run pana --no-warning .
142+
working-directory: flutter_secure_dotenv_generator

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,7 @@ pubspec.lock
88

99
.vscode/
1010

11-
.env*
11+
.env*
12+
13+
# Local development overrides
14+
pubspec_overrides.yaml

CONTRIBUTING.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# Contributing to flutter_secure_dotenv_generator
2+
3+
Thank you for your interest in contributing! This guide will help you get started.
4+
5+
## Getting Started
6+
7+
1. Fork the repository
8+
2. Clone your fork:
9+
```bash
10+
git clone https://github.com/<your-username>/flutter_secure_dotenv_generator.git
11+
```
12+
3. Install dependencies:
13+
```bash
14+
dart pub get
15+
```
16+
17+
### Local Development with flutter_secure_dotenv
18+
19+
During development you may want to test against a local copy of `flutter_secure_dotenv`. Create a `pubspec_overrides.yaml` (git-ignored) in the project root:
20+
21+
```yaml
22+
dependency_overrides:
23+
flutter_secure_dotenv:
24+
path: ../flutter_secure_dotenv
25+
```
26+
27+
## Development Workflow
28+
29+
### Branching
30+
31+
- `main` — stable releases published to pub.dev
32+
- `dev` — active development; PRs should target this branch
33+
34+
Create a feature branch from `dev`:
35+
36+
```bash
37+
git checkout -b feature/my-feature dev
38+
```
39+
40+
### Code Quality
41+
42+
Before submitting a PR, make sure all checks pass:
43+
44+
```bash
45+
dart format --set-exit-if-changed .
46+
dart analyze --fatal-infos
47+
dart test
48+
```
49+
50+
CI runs these automatically on every push and pull request.
51+
52+
### Tests
53+
54+
All new features and bug fixes **must** include tests. Run the test suite with:
55+
56+
```bash
57+
dart test
58+
```
59+
60+
## Pull Requests
61+
62+
1. Keep PRs focused — one feature or fix per PR.
63+
2. Write clear commit messages.
64+
3. Update `CHANGELOG.md` under an `## Unreleased` section.
65+
4. Ensure CI passes before requesting review.
66+
67+
## Reporting Issues
68+
69+
- Use [GitHub Issues](https://github.com/mfazrinizar/flutter_secure_dotenv_generator/issues).
70+
- Include Dart SDK version, package version, and a minimal reproduction.
71+
72+
## Code of Conduct
73+
74+
Be respectful and constructive in all interactions. We follow the [Dart community guidelines](https://dart.dev/community).

0 commit comments

Comments
 (0)