Skip to content

ci: set tag and release on main branch PRs #90

ci: set tag and release on main branch PRs

ci: set tag and release on main branch PRs #90

Workflow file for this run

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"