Fix Forgejo workflow discovery by replacing symlink with directory
This commit is contained in:
parent
09df2a93b7
commit
5df4dbd814
7 changed files with 667 additions and 1 deletions
|
|
@ -1 +0,0 @@
|
|||
../tools/ci
|
||||
127
.forgejo/workflows/ci-backend.yml
Normal file
127
.forgejo/workflows/ci-backend.yml
Normal file
|
|
@ -0,0 +1,127 @@
|
|||
name: Backend CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards_backend/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_common_backend/**'
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards_backend/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_common_backend/**'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
container: dart:stable
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Dart SDK
|
||||
uses: dart-lang/setup-dart@v1
|
||||
with:
|
||||
sdk: stable
|
||||
|
||||
- name: Cache pub dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards_backend/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_common_backend/.dart_tool
|
||||
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pub-
|
||||
|
||||
- name: Install common dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
dart pub get
|
||||
|
||||
- name: Install common backend dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common_backend
|
||||
dart pub get
|
||||
|
||||
- name: Install backend dependencies
|
||||
run: |
|
||||
cd mnemo_cards_backend
|
||||
dart pub get
|
||||
|
||||
- name: Run code generation
|
||||
run: |
|
||||
cd mnemo_cards_backend
|
||||
dart run build_runner build --delete-conflicting-outputs
|
||||
|
||||
- name: Run linting
|
||||
run: |
|
||||
cd mnemo_cards_backend
|
||||
dart analyze lib/
|
||||
dart format --set-exit-if-changed lib/
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd mnemo_cards_backend
|
||||
dart test --coverage=coverage
|
||||
dart pub global activate coverage
|
||||
dart pub global run coverage:format_coverage --lcov --in=coverage --out=coverage/lcov.info --packages=.dart_tool/package_config.json
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
file: ./mnemo_cards_backend/coverage/lcov.info
|
||||
flags: backend
|
||||
name: backend-coverage
|
||||
|
||||
build:
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
container: dart:stable
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Dart SDK
|
||||
uses: dart-lang/setup-dart@v1
|
||||
with:
|
||||
sdk: stable
|
||||
|
||||
- name: Cache pub dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards_backend/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_common_backend/.dart_tool
|
||||
key: ${{ runner.os }}-pub-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pub-
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
dart pub get
|
||||
cd ../mnemo_cards_common_backend
|
||||
dart pub get
|
||||
cd ../mnemo_cards_backend
|
||||
dart pub get
|
||||
|
||||
- name: Build backend executable
|
||||
run: |
|
||||
cd mnemo_cards_backend
|
||||
dart compile exe lib/main.dart -o server.exe
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: backend-binary
|
||||
path: mnemo_cards_backend/server.exe
|
||||
29
.forgejo/workflows/ci-main.yml
Normal file
29
.forgejo/workflows/ci-main.yml
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
name: Main CI Pipeline
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
code-quality:
|
||||
uses: ./code-quality.yml
|
||||
|
||||
backend-ci:
|
||||
needs: code-quality
|
||||
uses: ./ci-backend.yml
|
||||
|
||||
web-ci:
|
||||
needs: code-quality
|
||||
uses: ./ci-web.yml
|
||||
|
||||
mobile-ci:
|
||||
needs: code-quality
|
||||
uses: ./ci-mobile.yml
|
||||
|
||||
deploy:
|
||||
needs: [backend-ci, web-ci, mobile-ci]
|
||||
if: github.ref == 'refs/heads/main' || github.ref == 'refs/heads/master'
|
||||
uses: ./cd-deploy.yml
|
||||
216
.forgejo/workflows/ci-mobile.yml
Normal file
216
.forgejo/workflows/ci-mobile.yml
Normal file
|
|
@ -0,0 +1,216 @@
|
|||
name: Mobile App CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_frontend_common/**'
|
||||
- 'chat/mnemo_cards_chat/**'
|
||||
- 'games/packages/**'
|
||||
- 'funny_letters/**'
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_frontend_common/**'
|
||||
- 'chat/mnemo_cards_chat/**'
|
||||
- 'games/packages/**'
|
||||
- 'funny_letters/**'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_frontend_common/.dart_tool
|
||||
chat/mnemo_cards_chat/.dart_tool
|
||||
funny_letters/.dart_tool
|
||||
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-flutter-
|
||||
|
||||
- name: Install common dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
flutter pub get
|
||||
|
||||
- name: Install frontend common dependencies
|
||||
run: |
|
||||
cd mnemo_cards_frontend_common
|
||||
flutter pub get
|
||||
|
||||
- name: Install chat dependencies
|
||||
run: |
|
||||
cd chat/mnemo_cards_chat
|
||||
flutter pub get
|
||||
|
||||
- name: Install funny letters dependencies
|
||||
run: |
|
||||
cd funny_letters
|
||||
flutter pub get
|
||||
|
||||
- name: Install mobile app dependencies
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter pub get
|
||||
|
||||
- name: Run code generation
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter pub run build_runner build --delete-conflicting-outputs
|
||||
|
||||
- name: Run linting
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter analyze lib/
|
||||
flutter format --set-exit-if-changed lib/
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter test --coverage
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
file: ./mnemo_cards/coverage/lcov.info
|
||||
flags: mobile
|
||||
name: mobile-coverage
|
||||
|
||||
build-android:
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Setup Java
|
||||
uses: actions/setup-java@v4
|
||||
with:
|
||||
distribution: 'temurin'
|
||||
java-version: '17'
|
||||
|
||||
- name: Setup Android SDK
|
||||
uses: android-actions/setup-android@v3
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_frontend_common/.dart_tool
|
||||
chat/mnemo_cards_chat/.dart_tool
|
||||
funny_letters/.dart_tool
|
||||
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-flutter-
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
flutter pub get
|
||||
cd ../mnemo_cards_frontend_common
|
||||
flutter pub get
|
||||
cd ../chat/mnemo_cards_chat
|
||||
flutter pub get
|
||||
cd ../funny_letters
|
||||
flutter pub get
|
||||
cd ../mnemo_cards
|
||||
flutter pub get
|
||||
|
||||
- name: Build Android APK
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter build apk --release
|
||||
|
||||
- name: Upload Android APK
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: android-apk
|
||||
path: mnemo_cards/build/app/outputs/flutter-apk/app-release.apk
|
||||
|
||||
build-ios:
|
||||
needs: test
|
||||
runs-on: macos-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_frontend_common/.dart_tool
|
||||
chat/mnemo_cards_chat/.dart_tool
|
||||
funny_letters/.dart_tool
|
||||
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-flutter-
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
flutter pub get
|
||||
cd ../mnemo_cards_frontend_common
|
||||
flutter pub get
|
||||
cd ../chat/mnemo_cards_chat
|
||||
flutter pub get
|
||||
cd ../funny_letters
|
||||
flutter pub get
|
||||
cd ../mnemo_cards
|
||||
flutter pub get
|
||||
|
||||
- name: Build iOS
|
||||
run: |
|
||||
cd mnemo_cards
|
||||
flutter build ios --release --no-codesign
|
||||
|
||||
- name: Upload iOS build
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ios-build
|
||||
path: mnemo_cards/build/ios/iphoneos/
|
||||
138
.forgejo/workflows/ci-web.yml
Normal file
138
.forgejo/workflows/ci-web.yml
Normal file
|
|
@ -0,0 +1,138 @@
|
|||
name: Web App CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards_web_v2/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_frontend_common/**'
|
||||
- 'chat/mnemo_cards_chat/**'
|
||||
- 'games/packages/**'
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
paths:
|
||||
- 'mnemo_cards_web_v2/**'
|
||||
- 'mnemo_cards_common/**'
|
||||
- 'mnemo_cards_frontend_common/**'
|
||||
- 'chat/mnemo_cards_chat/**'
|
||||
- 'games/packages/**'
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards_web_v2/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_frontend_common/.dart_tool
|
||||
chat/mnemo_cards_chat/.dart_tool
|
||||
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-flutter-
|
||||
|
||||
- name: Install common dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
flutter pub get
|
||||
|
||||
- name: Install frontend common dependencies
|
||||
run: |
|
||||
cd mnemo_cards_frontend_common
|
||||
flutter pub get
|
||||
|
||||
- name: Install chat dependencies
|
||||
run: |
|
||||
cd chat/mnemo_cards_chat
|
||||
flutter pub get
|
||||
|
||||
- name: Install web app dependencies
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter pub get
|
||||
|
||||
- name: Run code generation
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter pub run build_runner build --delete-conflicting-outputs
|
||||
|
||||
- name: Run linting
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter analyze lib/
|
||||
flutter format --set-exit-if-changed lib/
|
||||
|
||||
- name: Run tests
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter test --coverage
|
||||
|
||||
- name: Upload coverage to Codecov
|
||||
uses: codecov/codecov-action@v4
|
||||
with:
|
||||
file: ./mnemo_cards_web_v2/coverage/lcov.info
|
||||
flags: web
|
||||
name: web-coverage
|
||||
|
||||
build:
|
||||
needs: test
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Cache Flutter dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
mnemo_cards_web_v2/.dart_tool
|
||||
mnemo_cards_common/.dart_tool
|
||||
mnemo_cards_frontend_common/.dart_tool
|
||||
chat/mnemo_cards_chat/.dart_tool
|
||||
key: ${{ runner.os }}-flutter-${{ hashFiles('**/pubspec.lock') }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-flutter-
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
cd mnemo_cards_common
|
||||
flutter pub get
|
||||
cd ../mnemo_cards_frontend_common
|
||||
flutter pub get
|
||||
cd ../chat/mnemo_cards_chat
|
||||
flutter pub get
|
||||
cd ../../mnemo_cards_web_v2
|
||||
flutter pub get
|
||||
|
||||
- name: Build web app
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter build web --release --dart-define=API_BASE_URL=https://1592725-cf88967.twc1.net:8081
|
||||
|
||||
- name: Upload build artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: web-build
|
||||
path: mnemo_cards_web_v2/build/web/
|
||||
77
.forgejo/workflows/code-quality.yml
Normal file
77
.forgejo/workflows/code-quality.yml
Normal file
|
|
@ -0,0 +1,77 @@
|
|||
name: Code Quality
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, master ]
|
||||
pull_request:
|
||||
branches: [ main, master ]
|
||||
|
||||
jobs:
|
||||
quality-gate:
|
||||
runs-on: ubuntu-latest
|
||||
container: dart:stable
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.0'
|
||||
channel: 'stable'
|
||||
|
||||
- name: Cache dependencies
|
||||
uses: actions/cache@v4
|
||||
with:
|
||||
path: |
|
||||
~/.pub-cache
|
||||
**/.dart_tool
|
||||
key: ${{ runner.os }}-deps-${{ hashFiles('**/pubspec.lock') }}
|
||||
|
||||
- name: Quick dependency check
|
||||
run: |
|
||||
# Быстрая проверка наличия pubspec файлов
|
||||
if ! find . -name "pubspec.yaml" -type f | grep -q .; then
|
||||
echo "No pubspec.yaml files found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Check for common issues
|
||||
run: |
|
||||
# Проверка на наличие TODO/FIXME в коде
|
||||
if grep -r -i "todo\|fixme\|hack" --include="*.dart" . | grep -v -E "(test|example)"; then
|
||||
echo "⚠️ Found TODO/FIXME comments in production code"
|
||||
fi
|
||||
|
||||
# Проверка на потенциальные секреты
|
||||
if grep -r -i "password\|secret\|key\|token" --include="*.dart" --include="*.yaml" --include="*.json" . | grep -v -E "(example|test|mock|fake|pubspec)"; then
|
||||
echo "⚠️ Potential secrets found in code"
|
||||
echo "Please review and ensure no real secrets are committed"
|
||||
else
|
||||
echo "✅ No obvious secrets found"
|
||||
fi
|
||||
|
||||
- name: Quality gate check
|
||||
run: |
|
||||
# Проверка что основные проекты существуют
|
||||
projects=("mnemo_cards_backend" "mnemo_cards_web_v2" "mnemo_cards")
|
||||
for project in "${projects[@]}"; do
|
||||
if [ ! -d "$project" ]; then
|
||||
echo "❌ Project $project not found"
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
# Проверка что нет критических ошибок в логах
|
||||
if [ -f ".github/workflows/code-quality.log" ]; then
|
||||
if grep -i "error\|failed\|exception" .github/workflows/code-quality.log; then
|
||||
echo "❌ Found critical errors in quality check"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo "✅ Quality gate passed"
|
||||
|
||||
80
.forgejo/workflows/deploy.yaml
Normal file
80
.forgejo/workflows/deploy.yaml
Normal file
|
|
@ -0,0 +1,80 @@
|
|||
name: Deploy Mnemo Cards
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
deploy-backend:
|
||||
name: Deploy Backend
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
||||
|
||||
- name: Sync Source Code
|
||||
run: |
|
||||
# Sync common packages
|
||||
rsync -avz --delete --exclude '.*' --exclude 'build' --exclude 'doc' \
|
||||
mnemo_cards_common \
|
||||
mnemo_cards_common_backend \
|
||||
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/
|
||||
|
||||
# Sync backend project
|
||||
rsync -avz --delete --exclude '.*' --exclude 'build' --exclude 'server.exe' \
|
||||
mnemo_cards_backend \
|
||||
${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/
|
||||
|
||||
# Sync build script
|
||||
rsync -avz tools/deploy/backend/server_build.sh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:~/mnemo_cards_backend/
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "chmod +x ~/mnemo_cards_backend/server_build.sh"
|
||||
|
||||
- name: Trigger Remote Build
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "~/mnemo_cards_backend/server_build.sh"
|
||||
|
||||
deploy-web:
|
||||
name: Deploy Web App
|
||||
runs-on: ubuntu-latest
|
||||
needs: deploy-backend
|
||||
if: always() # Run even if backend fails (optional, but usually good to separate)
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Setup Flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.19.2' # Adjust version as needed
|
||||
channel: 'stable'
|
||||
|
||||
- name: Setup SSH
|
||||
run: |
|
||||
mkdir -p ~/.ssh
|
||||
echo "${{ secrets.SSH_KEY }}" > ~/.ssh/id_rsa
|
||||
chmod 600 ~/.ssh/id_rsa
|
||||
ssh-keyscan -H ${{ secrets.SSH_HOST }} >> ~/.ssh/known_hosts
|
||||
|
||||
- name: Build Web App
|
||||
run: |
|
||||
cd mnemo_cards_web_v2
|
||||
flutter pub get
|
||||
flutter build web --release --dart-define=API_BASE_URL=https://api.memo-cards.online:8444 --dart2js-optimization=O4
|
||||
|
||||
- name: Deploy Web App
|
||||
run: |
|
||||
# Sync build artifacts
|
||||
rsync -avz --delete build/web/ ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }}:/var/www/mnemo_cards/
|
||||
|
||||
- name: Fix Permissions
|
||||
run: |
|
||||
ssh ${{ secrets.SSH_USER }}@${{ secrets.SSH_HOST }} "chown -R www-data:www-data /var/www/mnemo_cards && chmod -R 755 /var/www/mnemo_cards"
|
||||
Loading…
Reference in a new issue