mirror of
https://github.com/gmeligio/flutter-docker-image.git
synced 2026-05-24 12:30:34 +00:00
Compare commits
30 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| f3c90f5a11 | |||
| cd61c75bf0 | |||
| c2ac9525bd | |||
| c2de027b49 | |||
| e642c38317 | |||
| 233c2178d6 | |||
| ba54de256a | |||
| 6090f0667a | |||
| 150bb4ecea | |||
| 69b7f74fb6 | |||
| 74248a1094 | |||
| 6b9e03009d | |||
| f8c0636810 | |||
| a32d4abcb9 | |||
| 8ed6bdbb8b | |||
| 9dba4d7096 | |||
| 94fd0aeebd | |||
| 2d63f3e6c7 | |||
| e9c7bdcbaa | |||
| 68282b8b36 | |||
| ecb288efb1 | |||
| 64e0a9f576 | |||
| 4be9167733 | |||
| 71e04e3449 | |||
| bfda07a4a2 | |||
| 3916010100 | |||
| 31c7be1003 | |||
| 8c8d84f06e | |||
| 7d44dbd91a | |||
| 76abd64c7a |
+27
-18
@@ -27,16 +27,7 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
|
||||
- name: Read environment variables from version.json
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
@@ -59,8 +50,14 @@ jobs:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Build image and push to local Docker daemon
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -86,7 +83,7 @@ jobs:
|
||||
# TODO: Parallelize testing and vulnerability scanning
|
||||
- name: Scan with Docker Scout
|
||||
id: docker-scout
|
||||
uses: docker/scout-action@d341d36d6eebbe05c0b25760c63afa19e8f23269 # v1.17.0
|
||||
uses: docker/scout-action@aceeb83b88f2ae54376891227858dda7af647183 # v1.18.1
|
||||
with:
|
||||
command: compare, recommendations
|
||||
# Use the Docker Hub image that is the first tag in the metadata
|
||||
@@ -101,14 +98,18 @@ jobs:
|
||||
# debug: true
|
||||
# verbose-debug: true
|
||||
|
||||
validate_version:
|
||||
validate_version_files:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json and flutter_version.json with CUE
|
||||
run: |
|
||||
@@ -122,7 +123,11 @@ jobs:
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Generate test files with CUE
|
||||
run: |
|
||||
@@ -140,9 +145,9 @@ jobs:
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Setup NodeJS
|
||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache: npm
|
||||
cache-dependency-path: docs/src/package-lock.json
|
||||
node-version-file: docs/src/package.json
|
||||
|
||||
@@ -202,7 +207,11 @@ jobs:
|
||||
./gradlew --warning-mode all updateAndroidVersions
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json with CUE
|
||||
run: cue vet config/version.cue -d '#Version' config/version.json
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- config/version.json
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
changelog:
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
VERSION_MANIFEST: config/version.json
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
# TODO: Fetch only a few commits after using --unreleased in git-cliff
|
||||
# Fetch all commits to use as input for the changelog generation
|
||||
fetch-depth: 0
|
||||
# Fetch all tags to use as input for the changelog generation
|
||||
fetch-tags: true
|
||||
|
||||
- name: Setup git-cliff
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: orhun/git-cliff
|
||||
tag: v2.8.0
|
||||
digest: 17da092783079c63a0fb14c24fbfa0d3b589e225c6ef01c93111e39cecbc88e8
|
||||
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
IMAGE_REPOSITORY_NAME: ${{ env.IMAGE_REPOSITORY_NAME }}
|
||||
VERSION_MANIFEST: ${{ env.VERSION_MANIFEST }}
|
||||
with:
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Update changelog
|
||||
run: |
|
||||
git-cliff -v --tag ${{ env.FLUTTER_VERSION }} --github-repo ${{ github.repository }} --output changelog.md
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Commit and push changelog
|
||||
uses: grafana/github-api-commit-action@b1d81091e8480dd11fcea8bc1f0ab977a0376ca5 # v1.0.0
|
||||
with:
|
||||
commit-message: "chore(release): prepare for ${{ env.FLUTTER_VERSION }}"
|
||||
stage-all-files: true
|
||||
token: ${{ steps.app-token.outputs.token }}
|
||||
+10
-47
@@ -2,6 +2,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- changelog.md
|
||||
workflow_dispatch:
|
||||
|
||||
# Read-only permissions by default
|
||||
@@ -28,9 +30,13 @@ jobs:
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Read environment variables from version.json
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
@@ -54,7 +60,7 @@ jobs:
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: Build image and push to local Docker daemon
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -76,47 +82,4 @@ jobs:
|
||||
with:
|
||||
image: ${{ fromJSON(steps.metadata.outputs.json).tags[0] }}
|
||||
config: test/android.yml
|
||||
|
||||
create_git_tag:
|
||||
permissions:
|
||||
# Allow to write contents to push tags
|
||||
contents: write
|
||||
needs: test_image
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
|
||||
- name: Read environment variables from version.json
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
IMAGE_REPOSITORY_NAME: ${{ env.IMAGE_REPOSITORY_NAME }}
|
||||
VERSION_MANIFEST: ${{ env.VERSION_MANIFEST }}
|
||||
with:
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Create Tag for a New Flutter Version
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
OLD_FLUTTER_VERSION: ${{ vars.FLUTTER_VERSION }}
|
||||
NEW_FLUTTER_VERSION: ${{ env.FLUTTER_VERSION }}
|
||||
with:
|
||||
github-token: ${{ steps.app-token.outputs.token }}
|
||||
script: |
|
||||
const script = require('./script/createGitTag.js')
|
||||
await script({ core, context, github })
|
||||
|
||||
+130
-75
@@ -1,21 +1,25 @@
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*'
|
||||
- '*'
|
||||
workflow_dispatch:
|
||||
|
||||
# Read-only permissions by default
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
FLUTTER_VERSION: ${{ github.ref_name }}
|
||||
|
||||
jobs:
|
||||
release_android:
|
||||
permissions:
|
||||
# Allow to write packages to push the container image to the Github Container Registry
|
||||
packages: write
|
||||
# Allow to write security events to upload the results to code-scanning dashboard.
|
||||
security-events: write
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
# Use the Docker Hub image which is the first tag in the metadata
|
||||
docker_hub_image_path: ${{ fromJson(steps.metadata.outputs.json).tags[0] }}
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
ANDROID_BUILD_TOOLS_VERSION: 30.0.3
|
||||
@@ -24,39 +28,7 @@ jobs:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ github.token }}
|
||||
|
||||
- name: Login to Quay.io
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
registry: quay.io
|
||||
username: ${{ secrets.QUAY_USERNAME }}
|
||||
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
|
||||
- name: Read environment variables from version.json
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
@@ -81,8 +53,28 @@ jobs:
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Login to GitHub Container Registry
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ github.token }}
|
||||
|
||||
- name: Login to Quay.io
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
registry: quay.io
|
||||
username: ${{ secrets.QUAY_USERNAME }}
|
||||
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
|
||||
|
||||
- name: Build image and push it to registries
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
push: true
|
||||
@@ -99,8 +91,29 @@ jobs:
|
||||
android_ndk_version=${{ env.ANDROID_NDK_VERSION }}
|
||||
cmake_version=${{ env.CMAKE_VERSION }}
|
||||
|
||||
update_description:
|
||||
runs-on: ubuntu-24.04
|
||||
needs: release_android
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
VERSION_MANIFEST: config/version.json
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
IMAGE_REPOSITORY_NAME: ${{ env.IMAGE_REPOSITORY_NAME }}
|
||||
VERSION_MANIFEST: ${{ env.VERSION_MANIFEST }}
|
||||
with:
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Update Docker Hub description
|
||||
uses: peter-evans/dockerhub-description@0505d8b04853a30189aee66f5bb7fd1511bbac71 # v4.0.1
|
||||
uses: peter-evans/dockerhub-description@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
@@ -108,54 +121,96 @@ jobs:
|
||||
short-description: ${{ github.event.repository.description }}
|
||||
readme-filepath: readme.md
|
||||
|
||||
record_image:
|
||||
permissions:
|
||||
# Allow to write code scanning results to GitHub's code scanning dashboard
|
||||
security-events: write
|
||||
runs-on: ubuntu-24.04
|
||||
needs: release_android
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Record image in Docker Scout environment
|
||||
id: docker-scout-environment
|
||||
uses: docker/scout-action@d341d36d6eebbe05c0b25760c63afa19e8f23269 # v1.17.0
|
||||
uses: docker/scout-action@aceeb83b88f2ae54376891227858dda7af647183 # v1.18.1
|
||||
with:
|
||||
command: environment, cves
|
||||
# Use the Docker Hub image that is the first tag in the metadata
|
||||
image: registry://${{ fromJson(steps.metadata.outputs.json).tags[0] }}
|
||||
image: registry://${{ needs.release_android.outputs.docker_hub_image_path }}
|
||||
environment: prod
|
||||
only-fixed: true
|
||||
organization: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
sarif-file: sarif.json
|
||||
|
||||
|
||||
- name: Upload the results to GitHub's code scanning dashboard
|
||||
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
|
||||
with:
|
||||
sarif_file: sarif.json
|
||||
|
||||
set_bootstrap_image:
|
||||
runs-on: ubuntu-24.04
|
||||
needs: release_android
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Update bootstrap image tag in environment variable
|
||||
run: gh variable set FLUTTER_VERSION --body "${{ env.FLUTTER_VERSION }}"
|
||||
env:
|
||||
GH_TOKEN: ${{ steps.app-token.outputs.token }}
|
||||
|
||||
# Upload the results to GitHub's code scanning dashboard (optional).
|
||||
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
||||
- name: Upload to code-scanning
|
||||
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13
|
||||
create_github_release:
|
||||
permissions:
|
||||
# Allow to create releases and upload assets to them
|
||||
contents: write
|
||||
runs-on: ubuntu-24.04
|
||||
needs: release_android
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
sarif_file: sarif.json
|
||||
# TODO: Fetch only a few commits after using --unreleased in git-cliff
|
||||
# Fetch all commits to use as input for the changelog generation
|
||||
fetch-depth: 0
|
||||
# Fetch all tags to use as input for the changelog generation
|
||||
fetch-tags: true
|
||||
|
||||
# TODO: Use kaniko for building and pushing after slowness is solved
|
||||
# TODO: https://github.com/GoogleContainerTools/kaniko/issues/970
|
||||
# TODO: https://github.com/GoogleContainerTools/kaniko/issues/875
|
||||
# TODO: Use kaniko for building and pushing after pushing to Docker daemon is solved, to be able to test Docker image, with the following issues
|
||||
# TODO: https://github.com/GoogleContainerTools/kaniko/issues/1331
|
||||
# - name: Build image and push it to registries
|
||||
# uses: int128/kaniko-action@v1
|
||||
# with:
|
||||
# push: true
|
||||
# cache: true
|
||||
# cache-repository: ${{ steps.ecr-cache.outputs.repository-uri }}
|
||||
# tags: ${{ steps.metadata.outputs.tags }}
|
||||
# labels: ${{ steps.metadata.outputs.labels }}
|
||||
# build-args: |
|
||||
# flutter_version=${{ env.FLUTTER_VERSION }}
|
||||
# android_build_tools_version=${{ env.ANDROID_BUILD_TOOLS_VERSION }}
|
||||
# android_platform_versions=${{ env.ANDROID_PLATFORM_VERSIONS }}
|
||||
# kaniko-args: |
|
||||
# --skip-unused-stages=true
|
||||
# --use-new-run=true
|
||||
# --snapshotMode=redo
|
||||
# target: android
|
||||
# executor: gcr.io/kaniko-project/executor:latest
|
||||
# TODO: https://github.com/snok/container-retention-policy
|
||||
# TODO: Push a build image before the final image
|
||||
# TODO: Run basic tests with build image
|
||||
# TODO: Push final image only if tests pass https://redhat-cop.github.io/ci/publishing-images.html
|
||||
- name: Setup git-cliff
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: orhun/git-cliff
|
||||
tag: v2.8.0
|
||||
digest: 17da092783079c63a0fb14c24fbfa0d3b589e225c6ef01c93111e39cecbc88e8
|
||||
|
||||
- name: Get the tag details
|
||||
id: get-tag-details
|
||||
run: |-
|
||||
# Store the changelog in a temporary directory to not pollute the working directory
|
||||
mkdir -p "${{ runner.temp }}/git-cliff"
|
||||
changelog_file="${{ runner.temp }}/git-cliff/changelog.md"
|
||||
echo "changelog_file=${changelog_file}" >>$GITHUB_OUTPUT
|
||||
|
||||
git-cliff -v --latest --strip all --no-exec --github-repo "${{ github.repository }}" --output "$changelog_file"
|
||||
|
||||
- name: Create Github release
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |-
|
||||
gh release create "${{ env.FLUTTER_VERSION }}" \
|
||||
--title="${{ env.FLUTTER_VERSION }}" \
|
||||
--notes-file="${{ steps.get-tag-details.outputs.changelog_file }}"
|
||||
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Run analysis
|
||||
uses: ossf/scorecard-action@f49aabe0b5af0936a0987cfb85d86b75731b0186 # v2.4.1
|
||||
uses: ossf/scorecard-action@05b42c624433fc40578a4040d5cf5e36ddca8cde # v2.4.2
|
||||
with:
|
||||
results_file: results.sarif
|
||||
results_format: sarif
|
||||
@@ -70,6 +70,6 @@ jobs:
|
||||
# Upload the results to GitHub's code scanning dashboard (optional).
|
||||
# Commenting out will disable upload of results to your repo's Code Scanning dashboard
|
||||
- name: Upload to code-scanning
|
||||
uses: github/codeql-action/upload-sarif@1b549b9259bda1cb5ddde3b41741a82a2d15a841 # v3.28.13
|
||||
uses: github/codeql-action/upload-sarif@ff0a06e83cb2de871e5a09832bc6a81e7276941f # v3.28.18
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -0,0 +1,48 @@
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- changelog.md
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
create_git_tag:
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
VERSION_MANIFEST: config/version.json
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
IMAGE_REPOSITORY_NAME: ${{ env.IMAGE_REPOSITORY_NAME }}
|
||||
VERSION_MANIFEST: ${{ env.VERSION_MANIFEST }}
|
||||
with:
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Create Tag for a New Flutter Version
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
OLD_FLUTTER_VERSION: ${{ vars.FLUTTER_VERSION }}
|
||||
NEW_FLUTTER_VERSION: ${{ env.FLUTTER_VERSION }}
|
||||
with:
|
||||
github-token: ${{ steps.app-token.outputs.token }}
|
||||
script: |
|
||||
const script = require('./script/createGitTag.js')
|
||||
await script({ core, context, github })
|
||||
@@ -17,6 +17,7 @@ jobs:
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
new_version: ${{ steps.update_flutter_version.outputs.result }}
|
||||
flutter_version_artifact_id: ${{ steps.upload-version.outputs.artifact-id }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
@@ -31,7 +32,11 @@ jobs:
|
||||
|
||||
- name: Setup CUE
|
||||
if: ${{ steps.update_flutter_version.outputs.result == 'true' }}
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json with CUE
|
||||
if: ${{ steps.update_flutter_version.outputs.result == 'true' }}
|
||||
@@ -39,6 +44,7 @@ jobs:
|
||||
|
||||
- name: Upload artifact with the new Flutter version
|
||||
if: ${{ steps.update_flutter_version.outputs.result == 'true' }}
|
||||
id: upload-version
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: flutter_version.json
|
||||
@@ -54,6 +60,8 @@ jobs:
|
||||
pull-requests: write
|
||||
needs: update_flutter_version
|
||||
if: ${{ needs.update_flutter_version.outputs.new_version == 'true' }}
|
||||
outputs:
|
||||
version_artifact_id: ${{ steps.upload-version.outputs.artifact-id }}
|
||||
runs-on: ubuntu-24.04
|
||||
container:
|
||||
image: ghcr.io/${{ github.repository_owner }}/flutter-android:${{ vars.FLUTTER_VERSION }}
|
||||
@@ -72,19 +80,12 @@ jobs:
|
||||
run: rm config/flutter_version.json
|
||||
|
||||
- name: Download artifact with the new Flutter version
|
||||
uses: actions/download-artifact@95815c38cf2ff2164869cbab79da8d1f422bc89e # v4.2.1
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
name: flutter_version.json
|
||||
artifact-ids: ${{ needs.update_flutter_version.outputs.flutter_version_artifact_id }}
|
||||
path: config
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
# Download to the configured path instead of separated directories by artifact id
|
||||
merge-multiple: true
|
||||
|
||||
- name: Copy Flutter version into version manifest and export FLUTTER_* environment variables
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
@@ -122,16 +123,78 @@ jobs:
|
||||
run: |
|
||||
rm -rf test_app
|
||||
|
||||
- name: Upload artifact with the updated version.json
|
||||
id: upload-version
|
||||
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
|
||||
with:
|
||||
name: version.json
|
||||
path: config/version.json
|
||||
|
||||
validate_config_version:
|
||||
needs: update_android_version
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
# TODO: Workaround because actions/download-artifact can't overwrite existing files
|
||||
# Check if this workaround can be removed after the following issues are fixed:
|
||||
# https://github.com/actions/download-artifact/issues/225
|
||||
# https://github.com/actions/download-artifact/issues/138
|
||||
- name: Delete version.json
|
||||
run: rm config/version.json
|
||||
|
||||
- name: Download artifact with the new Flutter version
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
artifact-ids: ${{ needs.update_android_version.outputs.version_artifact_id }}
|
||||
path: config
|
||||
# Download to the configured path instead of separated directories by artifact id
|
||||
merge-multiple: true
|
||||
|
||||
- name: Setup CUE
|
||||
uses: cue-lang/setup-cue@a93fa358375740cd8b0078f76355512b9208acb1 # v1.0.1
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json with CUE
|
||||
run: cue vet config/version.cue -d '#Version' config/version.json
|
||||
|
||||
- name: Setup NodeJS
|
||||
uses: actions/setup-node@cdca7365b2dadb8aad0a33bc7601856ffabcc48e # v4.3.0
|
||||
update_docs_and_create_pr:
|
||||
needs:
|
||||
- update_flutter_version
|
||||
- update_android_version
|
||||
- validate_config_version
|
||||
runs-on: ubuntu-24.04
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
VERSION_MANIFEST: config/version.json
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
|
||||
# TODO: Workaround because actions/download-artifact can't overwrite existing files
|
||||
# Check if this workaround can be removed after the following issues are fixed:
|
||||
# https://github.com/actions/download-artifact/issues/225
|
||||
# https://github.com/actions/download-artifact/issues/138
|
||||
- name: Delete flutter_version.json and version.json
|
||||
run: |-
|
||||
rm config/flutter_version.json config/version.json
|
||||
|
||||
- name: Download artifact with the new Flutter version
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
cache: 'npm'
|
||||
artifact-ids: ${{ needs.update_flutter_version.outputs.flutter_version_artifact_id }},${{ needs.update_android_version.outputs.version_artifact_id }}
|
||||
path: config
|
||||
# Download to the configured path instead of separated directories by artifact id
|
||||
merge-multiple: true
|
||||
|
||||
- name: Setup NodeJS
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
cache: npm
|
||||
cache-dependency-path: docs/src/package-lock.json
|
||||
node-version-file: docs/src/package.json
|
||||
|
||||
@@ -141,10 +204,30 @@ jobs:
|
||||
npm ci --prefer-offline
|
||||
npm run build
|
||||
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
IMAGE_REPOSITORY_NAME: ${{ env.IMAGE_REPOSITORY_NAME }}
|
||||
VERSION_MANIFEST: ${{ env.VERSION_MANIFEST }}
|
||||
with:
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Create commit message variable
|
||||
run: |
|
||||
echo "COMMIT_MESSAGE=chore(release): update flutter dependencies in version.json for ${{ env.FLUTTER_VERSION }}" >> $GITHUB_ENV
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@df432ceedc7162793a195dd1713ff69aefc7379e # v2.0.6
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
# TODO: Generate changelog for the new flutter version, that will be the new tag
|
||||
- name: Create pull request if there are changes
|
||||
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e # v7.0.8
|
||||
|
||||
@@ -11,7 +11,7 @@ concurrency:
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
test_image:
|
||||
test_windows:
|
||||
permissions:
|
||||
# Allow to write packages for the docker/scout-action to write a comment
|
||||
packages: write
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
username: ${{ secrets.DOCKER_HUB_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Read environment variables from version.json
|
||||
- name: Read environment variables from the version manifest
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
env:
|
||||
GITHUB_REPOSITORY_OWNER: ${{ github.repository_owner }}
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
FROM debian:12.10-slim@sha256:b1211f6d19afd012477bd34fdcabb6b663d680e0f4b0537da6e6b0fd057a3ec3 AS flutter
|
||||
FROM debian:12.11-slim@sha256:e5865e6858dacc255bead044a7f2d0ad8c362433cfaa5acefb670c1edf54dfef AS flutter
|
||||
|
||||
SHELL ["/bin/bash", "-euxo", "pipefail", "-c"]
|
||||
|
||||
@@ -150,7 +150,7 @@ ENV ANDROID_HOME="$SDK_ROOT/android-sdk" \
|
||||
ENV PATH="$PATH:$ANDROID_HOME/cmdline-tools/latest/bin:$ANDROID_HOME/platform-tools:$HOME/.local/bin"
|
||||
|
||||
# renovate: release=bullseye depName=openjdk-17-jdk-headless
|
||||
ARG OPENJDK_17_JDK_HEADLESS_VERSION="17.0.14+7-1~deb12u1"
|
||||
ARG OPENJDK_17_JDK_HEADLESS_VERSION="17.0.15+6-1~deb12u1"
|
||||
# renovate: release=bullseye depName=sudo
|
||||
ARG SUDO_VERSION="1.9.13p3-1+deb12u1"
|
||||
|
||||
|
||||
+46
-1
@@ -2,6 +2,51 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [3.32.5] - 2025-06-26
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Parse json before output (#354)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.5 (#357)
|
||||
|
||||
## [3.32.4] - 2025-06-14
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Split release workflow into jobs (#352)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.4 (#353)
|
||||
|
||||
## [3.32.3] - 2025-06-12
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Add VERSION_MANIFEST to tag workflow (#349)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.2 (#350)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.3 (#351)
|
||||
|
||||
## [3.32.2] - 2025-06-05
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Split into tag.yml and changelog.yml workflows (#347)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.2 (#348)
|
||||
|
||||
## [3.32.1] - 2025-05-30
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.1 (#345)
|
||||
|
||||
## [3.32.0] - 2025-05-23
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Generate changelog with git-cliff (#330)
|
||||
- Set tools digest to verify integrity (#331)
|
||||
- Download immutable artifact by id (#337)
|
||||
- Update artifact download configuration (#342)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.0 (#343)
|
||||
|
||||
## [3.29.3] - 2025-04-17
|
||||
|
||||
### 🚀 Features
|
||||
@@ -31,7 +76,7 @@ All notable changes to this project will be documented in this file.
|
||||
- Grant app token only current repository (#320)
|
||||
- Download-artifact can not overwrite existing files (#327)
|
||||
- Path is a folder in download-artifact (#328)
|
||||
- Update flutter dependencies in version.json for 3.29.3
|
||||
- Update flutter dependencies in version.json for 3.29.3 (#329)
|
||||
|
||||
## [3.29.2] - 2025-03-15
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "ea121f8859e4b13e47a8f845e4586164519588bc",
|
||||
"version": "3.29.3"
|
||||
"commit": "fcf2c11572af6f390246c056bc905eca609533a0",
|
||||
"version": "3.32.5"
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "ea121f8859e4b13e47a8f845e4586164519588bc",
|
||||
"version": "3.29.3"
|
||||
"commit": "fcf2c11572af6f390246c056bc905eca609533a0",
|
||||
"version": "3.32.5"
|
||||
},
|
||||
"android": {
|
||||
"platforms": [
|
||||
@@ -11,7 +11,7 @@
|
||||
}
|
||||
],
|
||||
"gradle": {
|
||||
"version": "8.10.2"
|
||||
"version": "8.12"
|
||||
},
|
||||
"buildTools": {
|
||||
"version": "34.0.0"
|
||||
@@ -27,6 +27,6 @@
|
||||
}
|
||||
},
|
||||
"fastlane": {
|
||||
"version": "2.227.1"
|
||||
"version": "2.228.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -36,10 +36,6 @@ Predownloaded SDKs and tools in Android:
|
||||
- Android NDK: {androidNdkVersion}
|
||||
- Gradle: {gradleVersion}
|
||||
|
||||
## Alpha Stability
|
||||
|
||||
The images are experimental and are in active development. They are being used for small projects but there is no confirmation of production usage yet.
|
||||
|
||||
## Running Containers
|
||||
|
||||
| Registry | flutter-android |
|
||||
|
||||
@@ -22,6 +22,6 @@
|
||||
"remark-toc": "^9.0.0"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.14.0"
|
||||
"node": "22.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,6 @@ The images includes the minimum tools to run Flutter and build apps. The version
|
||||
## Contents
|
||||
|
||||
* [Features](#features)
|
||||
* [Alpha Stability](#alpha-stability)
|
||||
* [Running Containers](#running-containers)
|
||||
* [Tags](#tags)
|
||||
* [Building Locally](#building-locally)
|
||||
@@ -24,10 +23,10 @@ The images includes the minimum tools to run Flutter and build apps. The version
|
||||
|
||||
## Features
|
||||
|
||||
* Installed Flutter SDK 3.29.3.
|
||||
* Installed Flutter SDK 3.32.5.
|
||||
* Analytics disabled by default, opt-in if `ENABLE_ANALYTICS` environment variable is passed when running the container.
|
||||
* Rootless user `flutter:flutter`, with permissions to run on Github workflows and GitLab CI.
|
||||
* Cached Fastlane gem 2.227.1.
|
||||
* Cached Fastlane gem 2.228.0.
|
||||
* Minimal image with predownloaded SDKs and tools ready to run `flutter` commands for the Android platform.
|
||||
|
||||
Predownloaded SDKs and tools in Android:
|
||||
@@ -35,25 +34,21 @@ Predownloaded SDKs and tools in Android:
|
||||
* Licenses accepted
|
||||
* Android SDK Platforms: 35
|
||||
* Android NDK: 26.3.11579264
|
||||
* Gradle: 8.10.2
|
||||
|
||||
## Alpha Stability
|
||||
|
||||
The images are experimental and are in active development. They are being used for small projects but there is no confirmation of production usage yet.
|
||||
* Gradle: 8.12
|
||||
|
||||
## Running Containers
|
||||
|
||||
| Registry | flutter-android |
|
||||
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Docker Hub | [gmeligio/flutter-android:3.29.3](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.29.3](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.29.3](https://quay.io/repository/gmeligio/flutter-android) |
|
||||
| Docker Hub | [gmeligio/flutter-android:3.32.5](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.32.5](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.32.5](https://quay.io/repository/gmeligio/flutter-android) |
|
||||
|
||||
On the terminal:
|
||||
|
||||
```bash
|
||||
# From GitHub Container Registry
|
||||
docker run --rm -it ghcr.io/gmeligio/flutter-android:3.29.3 bash
|
||||
docker run --rm -it ghcr.io/gmeligio/flutter-android:3.32.5 bash
|
||||
```
|
||||
|
||||
On a workflow in GitHub Actions:
|
||||
@@ -63,7 +58,7 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: ghcr.io/gmeligio/flutter-android:3.29.3
|
||||
image: ghcr.io/gmeligio/flutter-android:3.32.5
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -75,7 +70,7 @@ On a `.gitlab-ci.yml` in GitLab CI:
|
||||
|
||||
```yaml
|
||||
build:
|
||||
image: ghcr.io/gmeligio/flutter-android:3.29.3
|
||||
image: ghcr.io/gmeligio/flutter-android:3.32.5
|
||||
script:
|
||||
- flutter build apk
|
||||
```
|
||||
@@ -96,20 +91,20 @@ bundle exec fastlane
|
||||
|
||||
Every new tag on the flutter stable channel gets built. The tag is composed of the Flutter version used to build the image:
|
||||
|
||||
* Docker image: gmeligio/flutter-android:3.29.3
|
||||
* Flutter version: 3.29.3
|
||||
* Docker image: gmeligio/flutter-android:3.32.5
|
||||
* Flutter version: 3.32.5
|
||||
|
||||
## Building Locally
|
||||
|
||||
The android.Dockerfile expects a few arguments:
|
||||
|
||||
* `flutter_version <string>`: The version of Flutter to use when building. Example: 3.29.3
|
||||
* `flutter_version <string>`: The version of Flutter to use when building. Example: 3.32.5
|
||||
* `android_build_tools_version <string>`: The version of the Android SDK Build Tools to install. Example: 34.0.0
|
||||
* `android_platform_versions <list>`: The versions of the Android SDK Platforms to install, separated by spaces. Example: 35
|
||||
|
||||
```bash
|
||||
# Android
|
||||
docker build --target android --build-arg flutter_version=3.29.3 --build-arg fastlane_version=2.227.1 --build-arg android_build_tools_version=34.0.0 --build-arg android_platform_versions="35" -t android-test .
|
||||
docker build --target android --build-arg flutter_version=3.32.5 --build-arg fastlane_version=2.228.0 --build-arg android_build_tools_version=34.0.0 --build-arg android_platform_versions="35" -t android-test .
|
||||
```
|
||||
|
||||
## Roadmap
|
||||
|
||||
@@ -1,27 +1,46 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
|
||||
module.exports = async ({ core }) => {
|
||||
const fs = require('fs')
|
||||
try {
|
||||
const flutterVersionPath = 'config/flutter_version.json'
|
||||
|
||||
const flutterVersionPath = 'config/flutter_version.json'
|
||||
const flutterVersionData = fs.readFileSync(flutterVersionPath, 'utf8')
|
||||
const fluterVersionJson = JSON.parse(flutterVersionData)
|
||||
if (
|
||||
!fs.existsSync(flutterVersionPath) ||
|
||||
fs.lstatSync(flutterVersionPath).isDirectory()
|
||||
) {
|
||||
throw new Error(`${flutterVersionPath} is missing or is a directory.`)
|
||||
}
|
||||
|
||||
const versionPath = 'config/version.json'
|
||||
const versionData = fs.readFileSync(versionPath, 'utf8')
|
||||
let versionJson = JSON.parse(versionData)
|
||||
const flutterVersionData = fs.readFileSync(flutterVersionPath, 'utf8')
|
||||
const flutterVersionJson = JSON.parse(flutterVersionData)
|
||||
|
||||
const resultPath = 'config/version.json'
|
||||
const result = {
|
||||
...versionJson,
|
||||
...fluterVersionJson,
|
||||
const versionPath = 'config/version.json'
|
||||
if (
|
||||
!fs.existsSync(versionPath) ||
|
||||
fs.lstatSync(versionPath).isDirectory()
|
||||
) {
|
||||
throw new Error(`${versionPath} is missing or is a directory.`)
|
||||
}
|
||||
|
||||
const versionData = fs.readFileSync(versionPath, 'utf8')
|
||||
let versionJson = JSON.parse(versionData)
|
||||
|
||||
const resultPath = 'config/version.json'
|
||||
const result = {
|
||||
...versionJson,
|
||||
...flutterVersionJson,
|
||||
}
|
||||
|
||||
const resultJson = JSON.stringify(result, null, 4)
|
||||
fs.writeFileSync(resultPath, `${resultJson}\n`)
|
||||
|
||||
const version = flutterVersionJson.flutter.version
|
||||
const channel = flutterVersionJson.flutter.channel
|
||||
|
||||
core.exportVariable('FLUTTER_VERSION', version)
|
||||
core.exportVariable('FLUTTER_CHANNEL', channel)
|
||||
} catch (error) {
|
||||
core.setFailed(`Error in copyFlutterVersion script: ${error.message}`)
|
||||
}
|
||||
|
||||
resultJson = JSON.stringify(result, null, 4)
|
||||
fs.writeFileSync(resultPath, `${resultJson}\n`)
|
||||
|
||||
const version = fluterVersionJson.flutter.version
|
||||
const channel = fluterVersionJson.flutter.channel
|
||||
|
||||
// Export FLUTTER_VERSION and FLUTTER_CHANNEL for the next workflow steps
|
||||
core.exportVariable('FLUTTER_VERSION', version)
|
||||
core.exportVariable('FLUTTER_CHANNEL', channel)
|
||||
}
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# escape=`
|
||||
|
||||
FROM mcr.microsoft.com/windows/servercore:ltsc2025@sha256:39fa6d04598fff134c079d3547efd9726dd967e540a76f24e5181dbdea4780d0 as flutter
|
||||
FROM mcr.microsoft.com/windows/servercore:ltsc2025@sha256:4c8150b6fe78cac412f24690d250c97c29a8cf2b0f241be7e9330e7d93292305 as flutter
|
||||
|
||||
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user