Skip to content

Commit

Permalink
CI
Browse files Browse the repository at this point in the history
  • Loading branch information
martijn00 committed Jul 31, 2024
1 parent 199a0c4 commit 28499e6
Show file tree
Hide file tree
Showing 2 changed files with 254 additions and 0 deletions.
158 changes: 158 additions & 0 deletions .github/workflows/build-firebase.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
name: build firebase

# Controls when the action will run. Triggers the workflow on push or pull request
# events but only for the develop branch
on:
push:
branches: [develop, main]
paths:
- "flutter_cache_manager_firebase/**"
- ".github/workflows/**"
pull_request:
branches: [develop]
paths:
- "flutter_cache_manager_firebase/**"
- ".github/workflows/**"

# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
format:
name: Format

# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager_firebase_firebase

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Run Flutter Format to ensure formatting is valid
- name: Run Flutter Format
run: dart format --set-exit-if-changed .
working-directory: ${{env.source-directory}}

analyze:
name: Analyze

# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager_firebase

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Run Flutter Analyzer
- name: Run Flutter Analyzer
run: flutter analyze
working-directory: ${{env.source-directory}}

tests:
name: Unit-tests
# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager_firebase

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Run all unit-tests with code coverage
- name: Run unit tests
run: flutter test --coverage
working-directory: ${{env.source-directory}}

# # Upload code coverage information
# - uses: codecov/codecov-action@v4
# env:
# CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
# with:
# files: ${{env.source-directory}}/coverage/lcov.info
# name: CacheManager
# fail_ci_if_error: true

publish_cache_manager_firebase:
if: ${{ github.ref_type == 'tag' }}
name: Publish Cache Manager Firebase
permissions:
id-token: write
needs: [format, analyze, tests]
# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager_firebase

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

- name: Set up Dart
uses: dart-lang/setup-dart@v1

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Publish the package
- name: Publish package
run: dart pub publish -v -f
96 changes: 96 additions & 0 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -347,3 +347,99 @@ jobs:
# files: ${{env.source-directory}}/coverage/lcov.info
# name: CacheManager
# fail_ci_if_error: true

publish_cache_manager:
if: ${{ github.ref_type == 'tag' }}
name: Publish CacheManager
permissions:
id-token: write
needs:
[
format,
analyze,
tests,
build_android,
build_ios,
build_macOS,
build_windows,
build_linux,
build_web,
]
# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

- name: Set up Dart
uses: dart-lang/setup-dart@v1

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Publish the package
- name: Publish package
run: dart pub publish -v -f

publish_cache_manager_firebase:
if: ${{ github.ref_type == 'tag' }}
name: Publish Cache Manager Firebase
permissions:
id-token: write
needs:
[
format,
analyze,
tests,
build_android,
build_ios,
build_macOS,
build_windows,
build_linux,
build_web,
]
# The type of runner that the job will run on
runs-on: ubuntu-latest

env:
source-directory: ./flutter_cache_manager_firebase

# Steps represent a sequence of tasks that will be executed as part of the job
steps:
# Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it
- uses: actions/checkout@v4

- name: Set up Dart
uses: dart-lang/setup-dart@v1

# Make sure the stable version of Flutter is available
- name: Set up Flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
architecture: x64
cache: true

# Download all Flutter packages
- name: Download dependencies
run: flutter pub get
working-directory: ${{env.source-directory}}

# Publish the package
- name: Publish package
run: dart pub publish -v -f

0 comments on commit 28499e6

Please sign in to comment.