Skip to content
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:
workflow_dispatch:
push:
tags:
- "*"
branches: [develop, main]
paths:
- "flutter_cache_manager_firebase/**"
- ".github/workflows/**"
pull_request:
branches: [develop, main]
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
# 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