Skip to content

Flutter Images

Flutter Images #98

Workflow file for this run

name: Flutter Images
env:
CYPRESS_VERSION: 12.17.1
FLUTTER_STABLE_VERSION: 3.16.0
on:
push:
branches:
- master
pull_request:
branches: [master] # only PRs to master branch
#types: [opened, synchronized] <- already pretty much the defaults
merge_group:
# limit parallel jobs/cancel old container builds if we start a new one
concurrency:
group: ${{ github.ref }}
cancel-in-progress: true
jobs:
names:
runs-on: ubuntu-latest
outputs:
version_suffix: ${{ github.ref != 'refs/heads/master' && '-' || '' }}${{ github.ref != 'refs/heads/master' && steps.slug.outputs.slug-url || '' }}
flutter_version: ${{ steps.flutver.outputs.slug }} # slugified version because why not
cypress_version: ${{ steps.cypressver.outputs.slug }} # slugified version because why not
steps:
- name: Sluggify suffix
id: slug
uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # 1.4.0
with:
key: VERSION_SUFFIX
value: ${{ github.ref }}
- name: Pass through flutter version
id: flutver
uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # 1.4.0
with:
key: FLUTTER_STABLE_VERSION
- name: Pass through cypress version
id: cypressver
uses: rlespinasse/slugify-value@a4879db1eb3db9bbee01dca36f98a8236c2b8239 # 1.4.0
with:
key: CYPRESS_VERSION
android:
permissions:
packages: write
contents: read
needs: [names]
uses: ./.github/workflows/build-container.yml
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
with:
version_suffix: ${{ needs.names.outputs.version_suffix }}
version: ${{ needs.names.outputs.flutter_version }}
image: "android"
flutter:
permissions:
packages: write
contents: read
needs: [names, android]
uses: ./.github/workflows/build-container.yml
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
with:
version_suffix: ${{ needs.names.outputs.version_suffix }}
version: ${{ needs.names.outputs.flutter_version }}
image: "flutter"
build-args: |
flutter_version=${{ needs.names.outputs.flutter_version}}
image_base=ghcr.io/${{ github.repository }}/android:${{ needs.names.outputs.flutter_version }}${{ needs.names.outputs.version_suffix }}
integration:
permissions:
packages: write
contents: read
needs: [names, flutter]
uses: ./.github/workflows/build-container.yml
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
with:
version_suffix: ${{ needs.names.outputs.version_suffix }}
version: ${{ needs.names.outputs.flutter_version }}
image: "integration"
build-args: |
flutter_image=ghcr.io/${{ github.repository }}/flutter:${{ needs.names.outputs.flutter_version }}${{ needs.names.outputs.version_suffix }}
flutter-linux:
permissions:
packages: write
contents: read
needs: [names]
uses: ./.github/workflows/build-container.yml
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
with:
version_suffix: ${{ needs.names.outputs.version_suffix }}
version: ${{ needs.names.outputs.flutter_version }}
image: "flutter-linux"
build-args: |
flutter_version=${{ needs.names.outputs.flutter_version}}
channel=stable
cypress:
permissions:
packages: write
contents: read
needs: [names]
uses: ./.github/workflows/build-container.yml
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
with:
version_suffix: ${{ needs.names.outputs.version_suffix }}
version: ${{ needs.names.outputs.cypress_version }}
image: "cypress"
build-args: |
cypress_version=${{ needs.names.outputs.cypress_version }}
all-passed:
runs-on: ubuntu-latest
needs: [cypress, flutter-linux, integration, flutter, android]
steps:
- run: "echo all passed"