Skip to content

Commit c5ec705

Browse files
committed
feat: Ajouter la prise en charge de la configuration Flutter et Node.js dans les fichiers d'environnement et CI
1 parent 079b252 commit c5ec705

5 files changed

Lines changed: 81 additions & 13 deletions

File tree

.env.example

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Flutter configuration
2+
FLUTTER_VERSION=3.35.5
3+
4+
# Node.js configuration
5+
NODE_VERSION=20

.github/workflows/ci.yml

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,34 @@ on:
66
pull_request:
77
branches: [main, develop]
88

9-
env:
10-
FLUTTER_VERSION: '3.24.0'
11-
129
jobs:
10+
setup-env:
11+
name: Setup Environment Variables
12+
runs-on: ubuntu-24.04
13+
outputs:
14+
flutter-version: ${{ steps.env.outputs.flutter-version }}
15+
node-version: ${{ steps.env.outputs.node-version }}
16+
steps:
17+
- name: 📚 Checkout repository
18+
uses: actions/checkout@v4
19+
20+
- name: 🔧 Load environment variables
21+
id: env
22+
run: |
23+
# Lire les variables depuis .env.example
24+
FLUTTER_VERSION=$(grep "FLUTTER_VERSION=" .env.example | cut -d '=' -f2)
25+
NODE_VERSION=$(grep "NODE_VERSION=" .env.example | cut -d '=' -f2)
26+
27+
echo "flutter-version=$FLUTTER_VERSION" >> $GITHUB_OUTPUT
28+
echo "node-version=$NODE_VERSION" >> $GITHUB_OUTPUT
29+
30+
echo "Flutter version: $FLUTTER_VERSION"
31+
echo "Node version: $NODE_VERSION"
32+
1333
lint-and-test:
1434
name: Lint & Test
1535
runs-on: ubuntu-24.04
36+
needs: setup-env
1637
timeout-minutes: 30
1738

1839
steps:
@@ -25,7 +46,7 @@ jobs:
2546
- name: 🏗️ Setup Node.js
2647
uses: actions/setup-node@v4
2748
with:
28-
node-version-file: '.nvmrc'
49+
node-version: ${{ needs.setup-env.outputs.node-version }}
2950
cache: 'npm'
3051
cache-dependency-path: 'package-lock.json'
3152

@@ -38,7 +59,7 @@ jobs:
3859
- name: 🏗️ Setup Flutter
3960
uses: subosito/flutter-action@v2
4061
with:
41-
flutter-version: ${{ env.FLUTTER_VERSION }}
62+
flutter-version: ${{ needs.setup-env.outputs.flutter-version }}
4263
cache: true
4364

4465
- name: 📦 Get Flutter dependencies
@@ -63,7 +84,7 @@ jobs:
6384
build:
6485
name: Build Applications
6586
runs-on: ubuntu-24.04
66-
needs: lint-and-test
87+
needs: [setup-env, lint-and-test]
6788
if: github.event_name == 'push'
6889
timeout-minutes: 45
6990

@@ -80,7 +101,7 @@ jobs:
80101
- name: 🏗️ Setup Flutter
81102
uses: subosito/flutter-action@v2
82103
with:
83-
flutter-version: ${{ env.FLUTTER_VERSION }}
104+
flutter-version: ${{ needs.setup-env.outputs.flutter-version }}
84105
cache: true
85106

86107
- name: 📦 Get Flutter dependencies
@@ -108,6 +129,7 @@ jobs:
108129
security-scan:
109130
name: Security Scan
110131
runs-on: ubuntu-24.04
132+
needs: setup-env
111133
timeout-minutes: 15
112134

113135
steps:
@@ -117,7 +139,7 @@ jobs:
117139
- name: 🏗️ Setup Node.js
118140
uses: actions/setup-node@v4
119141
with:
120-
node-version-file: '.nvmrc'
142+
node-version: ${{ needs.setup-env.outputs.node-version }}
121143
cache: 'npm'
122144
cache-dependency-path: 'package-lock.json'
123145

@@ -130,7 +152,7 @@ jobs:
130152
- name: 🏗️ Setup Flutter
131153
uses: subosito/flutter-action@v2
132154
with:
133-
flutter-version: ${{ env.FLUTTER_VERSION }}
155+
flutter-version: ${{ needs.setup-env.outputs.flutter-version }}
134156
cache: true
135157

136158
- name: 📦 Get Flutter dependencies

Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
FROM debian:stable-slim
22

3+
# Arguments de build
4+
ARG FLUTTER_VERSION=3.35.5
5+
36
# Variables
4-
ENV FLUTTER_VERSION=3.24.3
7+
ENV FLUTTER_VERSION=${FLUTTER_VERSION}
58
ENV FLUTTER_HOME=/opt/flutter
69
ENV PATH="$FLUTTER_HOME/bin:$PATH"
710

Taskfile.yml

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ version: 3
22

33
# Taskfile principal - Tâches globales et inclusions
44
# Charge automatiquement les variables depuis le fichier .env s'il existe
5-
dotenv: [ '.env' ]
5+
dotenv: [ '.env', '.env.example' ]
66

77
includes:
88
docker: ./taskfiles/docker/Taskfile.yml
@@ -16,6 +16,9 @@ vars:
1616
PROJECT_NAME: '{{.PROJECT_NAME | default "flutter"}}'
1717
PROJECT_VERSION: '1.0.0'
1818
ENVIRONMENT: '{{.ENVIRONMENT | default "development"}}'
19+
# Variables Flutter et Node.js depuis .env.example
20+
FLUTTER_VERSION: '{{.FLUTTER_VERSION | default "3.35.5"}}'
21+
NODE_VERSION: '{{.NODE_VERSION | default "20"}}'
1922

2023
tasks:
2124
default:
@@ -35,6 +38,8 @@ tasks:
3538
- |
3639
echo "🛠️ {{.PROJECT_NAME}} v{{.PROJECT_VERSION}} - Collection de Taskfiles"
3740
echo "Environnement: {{.ENVIRONMENT}}"
41+
echo "Flutter version: {{.FLUTTER_VERSION}}"
42+
echo "Node.js version: {{.NODE_VERSION}}"
3843
3944
help:
4045
desc: "Affiche l'aide détaillée"
@@ -46,10 +51,24 @@ tasks:
4651
desc: "Construit l'image Docker pour l'environnement de développement Flutter"
4752
silent: true
4853
cmds:
49-
- docker build -t flutter-dev .
54+
- |
55+
echo "🏗️ Construction de l'image Docker avec Flutter {{.FLUTTER_VERSION}}..."
56+
docker build \
57+
--build-arg FLUTTER_VERSION={{.FLUTTER_VERSION}} \
58+
-t flutter-dev:latest \
59+
-t flutter-dev:{{.FLUTTER_VERSION}} \
60+
.
61+
echo "✅ Image Docker construite avec succès!"
5062
5163
new:apps:
5264
desc: "Crée une nouvelle application Flutter dans le répertoire apps"
5365
silent: true
5466
cmds:
55-
- docker run --rm -it -v $PWD:/app flutter-dev flutter create apps
67+
- |
68+
echo "🚀 Création d'une nouvelle application Flutter avec la version {{.FLUTTER_VERSION}}..."
69+
docker run --rm -it \
70+
-v $PWD:/app \
71+
-e FLUTTER_VERSION={{.FLUTTER_VERSION}} \
72+
flutter-dev:{{.FLUTTER_VERSION}} \
73+
flutter create apps
74+
echo "✅ Application Flutter créée dans le répertoire apps!"

docker-compose.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
version: '3.8'
2+
3+
services:
4+
flutter-dev:
5+
build:
6+
context: .
7+
dockerfile: Dockerfile
8+
args:
9+
- FLUTTER_VERSION=${FLUTTER_VERSION:-3.24.0}
10+
volumes:
11+
- .:/app
12+
- flutter_cache:/opt/flutter/.pub-cache
13+
working_dir: /app
14+
environment:
15+
- FLUTTER_VERSION=${FLUTTER_VERSION:-3.24.0}
16+
command: /bin/bash
17+
18+
volumes:
19+
flutter_cache:

0 commit comments

Comments
 (0)