ci: set tag and release on main
branch PRs
#90
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Linting & Tests Validation | |
permissions: | |
contents: write | |
pull-requests: read | |
on: | |
pull_request: | |
branches: | |
- develop | |
jobs: | |
build-and-upload-linux: | |
if: github.event.pull_request.merged == false | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
- name: Setup Flutter | |
uses: subosito/flutter-action@v2 | |
with: | |
flutter-version: '3.24.5' | |
channel: 'stable' | |
cache: true | |
- name: Install Dependencies (Linux) | |
if: ${{ matrix.os == 'linux' }} | |
run: | | |
sudo apt-get update | |
sudo apt-get install -y ninja-build libgtk-3-dev cmake pkg-config libblkid-dev liblzma-dev | |
- name: Enable Platform | |
run: flutter config --enable-linux-desktop | |
- name: Get Dependencies | |
run: flutter pub get | |
- name: Build Application | |
run: flutter build linux --release | |
- name: Archive Release | |
uses: thedoctor0/zip-release@master | |
with: | |
type: 'zip' | |
filename: 'linux-build.zip' | |
directory: build/linux/x64/release/bundle | |
- name: Notify Telegram | |
if: always() | |
uses: appleboy/telegram-action@master | |
with: | |
to: ${{ secrets.TELEGRAM_CHAT_ID }} | |
token: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
format: markdown | |
message: | | |
π *Linux Build Published!* | |
π¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }} | |
π€ Requested by: ${{ github.event.pull_request.user.login }} | |
β Merged by: ${{ github.event.pull_request.merged_by.login }} | |
files: linux-build.zip | |
- name: Validate Telegram Chat ID | |
if: failure() | |
run: | | |
echo "β οΈ Telegram notification failed. Please verify the TELEGRAM_CHAT_ID." | |
echo "If your group migrated to a supergroup, update the TELEGRAM_CHAT_ID." | |
#name: Linting & Tests Validation | |
# | |
#permissions: | |
# contents: write | |
# pull-requests: read | |
# | |
#on: | |
# pull_request: | |
# branches: | |
# - develop | |
#jobs: | |
# build-and-upload-linux: | |
# if: github.event.pull_request.merged == false | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v4 | |
# | |
# - name: Setup Flutter | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.24.5' | |
# channel: 'stable' | |
# cache: true | |
# | |
# - name: Install Linux dependencies | |
# run: | | |
# sudo apt-get update | |
# sudo apt-get install -y ninja-build libgtk-3-dev | |
# sudo apt-get install -y cmake pkg-config | |
# sudo apt-get install -y libblkid-dev | |
# sudo apt-get install -y liblzma-dev | |
# | |
# - name: Enable Linux desktop | |
# run: flutter config --enable-linux-desktop | |
# | |
# - name: Get dependencies | |
# run: flutter pub get | |
# | |
# - name: Build application | |
# run: flutter build linux --release | |
# | |
# - name: Archive Release | |
# uses: thedoctor0/zip-release@master | |
# with: | |
# type: 'zip' | |
# filename: 'linux-build.zip' | |
# directory: build/linux/x64/release/bundle | |
# | |
# - name: Send Telegram Notification with File | |
# uses: appleboy/telegram-action@master | |
# with: | |
# to: ${{ secrets.TELEGRAM_CHAT_ID }} | |
# token: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
# format: markdown | |
# message: | | |
# π *Linux Build Published!* | |
# | |
# π¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }} | |
# π€ Requested by: ${{ github.event.pull_request.user.login }} | |
# β Merged by: ${{ github.event.pull_request.merged_by.login }} | |
# files: linux-build.zip | |
# | |
# - name: Send Discord Notification with File | |
# env: | |
# DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
# run: | | |
# curl -F "[email protected]" \ | |
# -F "payload_json={\"content\":\"π **Linux Build Published!**\\n\\nπ¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}\\nπ€ Requested by: ${{ github.event.pull_request.user.login }}\\nβ Merged by: ${{ github.event.pull_request.merged_by.login }}\"}" \ | |
# $DISCORD_WEBHOOK | |
# build-and-upload-windows: | |
# if: github.event.pull_request.merged == false | |
# runs-on: windows-latest | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v4 | |
# | |
# - name: Setup Flutter | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.24.5' | |
# channel: 'stable' | |
# cache: true | |
# | |
# - name: Enable Windows desktop | |
# run: flutter config --enable-windows-desktop | |
# | |
# - name: Get dependencies | |
# run: flutter pub get | |
# | |
# - name: Build application | |
# run: | | |
# flutter doctor -v | |
# flutter build windows --release | |
# dir build\windows\x64\runner\Release | |
# | |
# - name: Verify build directory | |
# run: | | |
# if (Test-Path "build\windows\x64\runner\Release") { | |
# echo "β Build directory exists" | |
# dir build\windows\x64\runner\Release | |
# } else { | |
# echo "Γ Build directory not found" | |
# exit 1 | |
# } | |
# | |
# - name: Archive Release | |
# shell: bash | |
# run: | | |
# cd build/windows/x64/runner/Release | |
# 7z a -tzip windows-build.zip ./* | |
# | |
# - name: Send Telegram Notification with File | |
# uses: appleboy/telegram-action@master | |
# with: | |
# to: ${{ secrets.TELEGRAM_CHAT_ID }} | |
# token: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
# format: markdown | |
# message: | | |
# π *Windows Build Published!* | |
# | |
# π¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }} | |
# π€ Requested by: ${{ github.event.pull_request.user.login }} | |
# β Merged by: ${{ github.event.pull_request.merged_by.login }} | |
# files: build/windows/x64/runner/Release/windows-build.zip | |
# | |
# - name: Send Discord Notification with File | |
# env: | |
# DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
# run: | | |
# curl -F "file=@build/windows/x64/runner/Release/windows-build.zip" \ | |
# -F "payload_json={\"content\":\"π **Windows Build Published!**\\n\\nπ¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}\\nπ€ Requested by: ${{ github.event.pull_request.user.login }}\\nβ Merged by: ${{ github.event.pull_request.merged_by.login }}\"}" \ | |
# $DISCORD_WEBHOOK | |
# build-and-upload-macos: | |
# if: github.event.pull_request.merged == false | |
# runs-on: macos-latest | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v4 | |
# | |
# - name: Setup Flutter | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.24.5' | |
# channel: 'stable' | |
# cache: true | |
# | |
# - name: Enable macOS desktop | |
# run: flutter config --enable-macos-desktop | |
# | |
# - name: Get dependencies | |
# run: flutter pub get | |
# | |
# - name: Build application | |
# run: flutter build macos --release | |
# | |
# - name: Archive Release | |
# run: | | |
# cd build/macos/Build/Products/Release | |
# zip -r macos-build.zip MyApp.app | |
# | |
# - name: Send Telegram Notification with File | |
# uses: appleboy/telegram-action@master | |
# with: | |
# to: ${{ secrets.TELEGRAM_CHAT_ID }} | |
# token: ${{ secrets.TELEGRAM_BOT_TOKEN }} | |
# format: markdown | |
# message: | | |
# π *macOS Build Published!* | |
# | |
# π¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }} | |
# π€ Requested by: ${{ github.event.pull_request.user.login }} | |
# β Merged by: ${{ github.event.pull_request.merged_by.login }} | |
# files: build/macos/Build/Products/Release/macos-build.zip | |
# | |
# - name: Send Discord Notification with File | |
# env: | |
# DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }} | |
# run: | | |
# curl -F "file=@build/macos/Build/Products/Release/macos-build.zip" \ | |
# -F "payload_json={\"content\":\"π **macOS Build Published!**\\n\\nπ¦ PR: #${{ github.event.pull_request.number }} - ${{ github.event.pull_request.title }}\\nπ€ Requested by: ${{ github.event.pull_request.user.login }}\\nβ Merged by: ${{ github.event.pull_request.merged_by.login }}\"}" \ | |
# $DISCORD_WEBHOOK | |
# lint_and_test: | |
# runs-on: ubuntu-latest | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v2 | |
# - name: Set up Flutter | |
# uses: subosito/flutter-action@v2 | |
# with: | |
# flutter-version: '3.24.5' | |
# - name: Install dependencies | |
# run: flutter pub get | |
# - name: Run Dart Format Check (Efficient) | |
# run: | | |
# dart format . --set-exit-if-changed --output none || ( | |
# echo "Code formatting issues detected. Run 'dart format .' and commit the changes."; | |
# exit 1; | |
# ) | |
# - name: Run Flutter Analyze | |
# run: flutter analyze | |
# - name: Generate Localization Files (Easy Localization) | |
# run: | | |
# # Generate locale keys | |
# dart run easy_localization:generate -f keys -o locale_keys.g.dart --source-dir=assets/translations --output-dir=lib/src/core/utils/gen/localization || ( | |
# echo "Error: Failed to generate locale keys."; | |
# exit 1; | |
# ) | |
# - name: Run Dart Format and Check Localization Files Changes | |
# run: | | |
# # Run dart format without failing the step | |
# dart format . || echo "dart format completed with warnings, but continuing pipeline." | |
# | |
# # Check if there are changes in the localization files after generation | |
# git diff --exit-code lib/src/core/utils/gen/localization || ( | |
# echo "Error: Localization files are outdated. Run the generation command and commit the changes."; | |
# exit 1; | |
# ) | |
# - name: Generate Assets Files | |
# run: | | |
# # Command to rebuild asset files | |
# dart run build_runner build --delete-conflicting-outputs --build-filter="lib/src/core/utils/gen/assets/*.dart" || ( | |
# echo "Error: Failed to generate asset files."; | |
# exit 1; | |
# ) | |
# - name: Check Asset Files Changes | |
# run: | | |
# # Check if there are changes after generating asset files | |
# git diff --exit-code lib/src/core/utils/gen/assets || ( | |
# echo "Error: Asset files are outdated. Run the generation command and commit the changes."; | |
# exit 1; | |
# ) | |
# - name: Run tests | |
# run: flutter test | |
# merge_check: | |
# runs-on: ubuntu-latest | |
# needs: lint_and_test | |
# if: ${{ success() }} | |
# steps: | |
# - name: Checkout code | |
# uses: actions/checkout@v2 | |
# - name: Merge Pull Request | |
# run: echo "Linting and tests passed successfully.Merge request is ready for merge" |