mirror of
https://github.com/gmeligio/flutter-docker-image.git
synced 2026-05-24 12:30:34 +00:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 94fd0aeebd | |||
| 2d63f3e6c7 | |||
| e9c7bdcbaa | |||
| 68282b8b36 | |||
| ecb288efb1 | |||
| 64e0a9f576 | |||
| 4be9167733 | |||
| 71e04e3449 | |||
| bfda07a4a2 | |||
| 3916010100 | |||
| 31c7be1003 | |||
| 8c8d84f06e | |||
| 7d44dbd91a | |||
| 76abd64c7a |
@@ -34,7 +34,11 @@ 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
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
@@ -60,7 +64,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@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -86,7 +90,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@381b657c498a4d287752e7f2cfb2b41823f566d9 # v1.17.1
|
||||
with:
|
||||
command: compare, recommendations
|
||||
# Use the Docker Hub image that is the first tag in the metadata
|
||||
@@ -108,7 +112,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: Validate version.json and flutter_version.json with CUE
|
||||
run: |
|
||||
@@ -122,7 +130,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,7 +152,7 @@ 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-dependency-path: docs/src/package-lock.json
|
||||
@@ -202,7 +214,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
|
||||
|
||||
@@ -28,7 +28,11 @@ 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
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
@@ -54,7 +58,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@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -88,7 +92,7 @@ jobs:
|
||||
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
|
||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
@@ -97,7 +101,11 @@ jobs:
|
||||
owner: ${{ github.repository_owner }}
|
||||
|
||||
- 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
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
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
|
||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
@@ -54,7 +54,11 @@ jobs:
|
||||
password: ${{ secrets.QUAY_ROBOT_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
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
@@ -82,7 +86,7 @@ jobs:
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: Build image and push it to registries
|
||||
uses: docker/build-push-action@471d1dc4e07e5cdedd4c2171150001c434f0b7a4 # v6.15.0
|
||||
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
push: true
|
||||
@@ -100,7 +104,7 @@ jobs:
|
||||
cmake_version=${{ env.CMAKE_VERSION }}
|
||||
|
||||
- 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 }}
|
||||
@@ -110,7 +114,7 @@ jobs:
|
||||
|
||||
- name: Record image in Docker Scout environment
|
||||
id: docker-scout-environment
|
||||
uses: docker/scout-action@d341d36d6eebbe05c0b25760c63afa19e8f23269 # v1.17.0
|
||||
uses: docker/scout-action@381b657c498a4d287752e7f2cfb2b41823f566d9 # v1.17.1
|
||||
with:
|
||||
command: environment, cves
|
||||
# Use the Docker Hub image that is the first tag in the metadata
|
||||
@@ -128,7 +132,7 @@ 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@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
|
||||
with:
|
||||
sarif_file: sarif.json
|
||||
|
||||
|
||||
@@ -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@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -17,6 +17,7 @@ jobs:
|
||||
runs-on: ubuntu-24.04
|
||||
outputs:
|
||||
new_version: ${{ steps.update_flutter_version.outputs.result }}
|
||||
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
|
||||
@@ -63,6 +69,12 @@ jobs:
|
||||
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
|
||||
|
||||
# TODO: Workaround because actions/download-artifact can't overwrite existing files
|
||||
# Check if this workaround can be removed after the following issues are fixed:
|
||||
@@ -72,13 +84,15 @@ 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.version_artifact_id }}
|
||||
path: config
|
||||
# Download to the configured path instead of separated directories by artifact id
|
||||
merge-multiple: true
|
||||
|
||||
- name: Generate authentication token with GitHub App to trigger Actions
|
||||
uses: actions/create-github-app-token@d72941d797fd3113feb6b93fd0dec494b13a2547 # v1.12.0
|
||||
uses: actions/create-github-app-token@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
id: app-token
|
||||
with:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
@@ -123,13 +137,17 @@ jobs:
|
||||
rm -rf test_app
|
||||
|
||||
- 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
|
||||
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
|
||||
with:
|
||||
cache: 'npm'
|
||||
cache-dependency-path: docs/src/package-lock.json
|
||||
@@ -141,6 +159,17 @@ jobs:
|
||||
npm ci --prefer-offline
|
||||
npm run build
|
||||
|
||||
- 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: Update changelog
|
||||
run: |
|
||||
git-cliff -v --tag ${{ env.FLUTTER_VERSION }} --github-repo ${{ github.repository }} --output changelog.md
|
||||
|
||||
- name: Create commit message variable
|
||||
run: |
|
||||
echo "COMMIT_MESSAGE=chore(release): update flutter dependencies in version.json for ${{ env.FLUTTER_VERSION }}" >> $GITHUB_ENV
|
||||
|
||||
@@ -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
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
FROM debian:12.10-slim@sha256:b1211f6d19afd012477bd34fdcabb6b663d680e0f4b0537da6e6b0fd057a3ec3 AS flutter
|
||||
FROM debian:12.11-slim@sha256:90522eeb7e5923ee2b871c639059537b30521272f10ca86fdbbbb2b75a8c40cd 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"
|
||||
|
||||
|
||||
+11
-1
@@ -2,6 +2,16 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [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 +41,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": "b25305a8832cfc6ba632a7f87ad455e319dccce8",
|
||||
"version": "3.32.1"
|
||||
}
|
||||
}
|
||||
|
||||
+4
-4
@@ -1,8 +1,8 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "ea121f8859e4b13e47a8f845e4586164519588bc",
|
||||
"version": "3.29.3"
|
||||
"commit": "b25305a8832cfc6ba632a7f87ad455e319dccce8",
|
||||
"version": "3.32.1"
|
||||
},
|
||||
"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.227.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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.1.
|
||||
* 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.227.2.
|
||||
* 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.1](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.32.1](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.32.1](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.1 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.1
|
||||
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.1
|
||||
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.1
|
||||
* Flutter version: 3.32.1
|
||||
|
||||
## 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.1
|
||||
* `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.1 --build-arg fastlane_version=2.227.2 --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:c6b2b26058a096cb3f627ed03d0be66bea262c89222c988b516e63ae68f3ea72 as flutter
|
||||
|
||||
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user