|
name: CI |
|
|
|
on: |
|
push: |
|
branches: [ main, dev, '**-connector', '**-connection-pull' ] |
|
tags: |
|
- '*.*.*' |
|
- 'v*' |
|
pull_request: |
|
branches: [ main, dev ] |
|
|
|
jobs: |
|
test: |
|
name: Run Tests |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v4 |
|
|
|
- name: Setup Flutter |
|
uses: subosito/flutter-action@v2 |
|
with: |
|
flutter-version: '3.41.6' |
|
channel: 'stable' |
|
cache: true |
|
|
|
- name: Install Linux dependencies (plugins) |
|
run: | |
|
sudo apt-get update |
|
sudo apt-get install -y libsecret-1-dev |
|
|
|
- name: Get dependencies |
|
run: flutter pub get |
|
|
|
- name: Run tests |
|
run: flutter test --exclude-tags=golden |
|
|
|
analyze: |
|
name: Code Analysis |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v4 |
|
|
|
- name: Setup Flutter |
|
uses: subosito/flutter-action@v2 |
|
with: |
|
flutter-version: '3.41.6' |
|
channel: 'stable' |
|
cache: true |
|
|
|
- name: Get dependencies |
|
run: flutter pub get |
|
|
|
- name: Analyze code |
|
run: flutter analyze |
|
|
|
# Release smoke build: runs after tests + analyze only when the workflow was |
|
# triggered by a version tag (semver X.Y.Z or legacy v*), not on branch/PR pushes. |
|
build-linux-release: |
|
name: Build Linux (release) |
|
needs: [test, analyze] |
|
if: startsWith(github.ref, 'refs/tags/') |
|
runs-on: ubuntu-latest |
|
steps: |
|
- uses: actions/checkout@v4 |
|
|
|
- name: Install Linux dependencies |
|
run: | |
|
sudo apt-get update |
|
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libsecret-1-dev |
|
|
|
- name: Setup Flutter |
|
uses: subosito/flutter-action@v2 |
|
with: |
|
flutter-version: '3.41.6' |
|
channel: 'stable' |
|
cache: true |
|
|
|
- name: Get dependencies |
|
run: flutter pub get |
|
|
|
- name: Build Linux (release) |
|
run: flutter build linux --release |