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 | |
|---|---|---|---|
| 0d31f67ad2 | |||
| 18b3e138b2 | |||
| d25c95b07a | |||
| daf29cb53c | |||
| 5a8df53369 | |||
| 8ef9faedfb | |||
| 78ac5b7f06 | |||
| 52285d2588 | |||
| d17712eb8a | |||
| 9584814388 | |||
| 7460e97f45 | |||
| a290bf28c3 | |||
| c9e5d504a0 | |||
| 719f1ee3c4 |
@@ -0,0 +1,2 @@
|
||||
# Normalize all text files to LF in repo, checkout CRLF on Windows
|
||||
* text=auto eol=lf
|
||||
@@ -0,0 +1,127 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, religion, or sexual identity
|
||||
and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the
|
||||
overall community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or
|
||||
advances of any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email
|
||||
address, without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at [Insert contact method].
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series
|
||||
of actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or
|
||||
permanent ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within
|
||||
the community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.0, available at
|
||||
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.
|
||||
|
||||
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||
enforcement ladder](https://github.com/mozilla/diversity).
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
https://www.contributor-covenant.org/faq. Translations are available at
|
||||
https://www.contributor-covenant.org/translations.
|
||||
@@ -0,0 +1,38 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behavior:
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
**Expected behavior**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Desktop (please complete the following information):**
|
||||
- OS: [e.g. iOS]
|
||||
- Browser [e.g. chrome, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Smartphone (please complete the following information):**
|
||||
- Device: [e.g. iPhone6]
|
||||
- OS: [e.g. iOS8.1]
|
||||
- Browser [e.g. stock browser, safari]
|
||||
- Version [e.g. 22]
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
@@ -39,7 +39,7 @@ jobs:
|
||||
return await script({ core })
|
||||
|
||||
- name: Load image metadata
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
||||
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
|
||||
id: metadata
|
||||
with:
|
||||
images: |
|
||||
@@ -83,7 +83,7 @@ jobs:
|
||||
# TODO: Parallelize testing and vulnerability scanning
|
||||
- name: Scan with Docker Scout
|
||||
id: docker-scout
|
||||
uses: docker/scout-action@aceeb83b88f2ae54376891227858dda7af647183 # v1.18.1
|
||||
uses: docker/scout-action@f8c776824083494ab0d56b8105ba2ca85c86e4de # v1.18.2
|
||||
with:
|
||||
command: compare, recommendations
|
||||
# Use the Docker Hub image that is the first tag in the metadata
|
||||
|
||||
@@ -48,7 +48,7 @@ jobs:
|
||||
return await script({ core })
|
||||
|
||||
- name: Load image metadata
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
||||
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
|
||||
id: metadata
|
||||
with:
|
||||
images: |
|
||||
|
||||
@@ -37,7 +37,7 @@ jobs:
|
||||
return await script({ core })
|
||||
|
||||
- name: Load image metadata
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
||||
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
|
||||
id: metadata
|
||||
with:
|
||||
images: |
|
||||
@@ -137,7 +137,7 @@ jobs:
|
||||
password: ${{ secrets.DOCKER_HUB_TOKEN }}
|
||||
|
||||
- name: Record image in Docker Scout environment
|
||||
uses: docker/scout-action@aceeb83b88f2ae54376891227858dda7af647183 # v1.18.1
|
||||
uses: docker/scout-action@f8c776824083494ab0d56b8105ba2ca85c86e4de # v1.18.2
|
||||
with:
|
||||
command: environment, cves
|
||||
image: registry://${{ github.repository_owner }}/${{ env.IMAGE_REPOSITORY_NAME }}:${{ env.FLUTTER_VERSION }}
|
||||
@@ -147,7 +147,7 @@ jobs:
|
||||
sarif-file: sarif.json
|
||||
|
||||
- name: Upload the results to GitHub's code scanning dashboard
|
||||
uses: github/codeql-action/upload-sarif@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
||||
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@181d5eefc20863364f96762470ba6f862bdef56b # v3.29.2
|
||||
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
||||
with:
|
||||
sarif_file: results.sarif
|
||||
|
||||
@@ -217,7 +217,7 @@ jobs:
|
||||
|
||||
- name: Create commit message variable
|
||||
run: |
|
||||
echo "COMMIT_MESSAGE=chore(release): update flutter dependencies in version.json for ${{ env.FLUTTER_VERSION }}" >> $GITHUB_ENV
|
||||
echo "COMMIT_MESSAGE=chore(release): upgrade flutter to ${{ 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
|
||||
|
||||
+5
-5
@@ -1,17 +1,17 @@
|
||||
FROM debian:12.11-slim@sha256:2424c1850714a4d94666ec928e24d86de958646737b1d113f5b2207be44d37d8 AS flutter
|
||||
FROM debian:12.12-slim@sha256:acd98e6cfc42813a4db9ca54ed79b6f702830bfc2fa43a2c2e87517371d82edb AS flutter
|
||||
|
||||
SHELL ["/bin/bash", "-euxo", "pipefail", "-c"]
|
||||
|
||||
ENV LANG=C.UTF-8
|
||||
|
||||
# renovate: release=bullseye depName=curl
|
||||
ARG CURL_VERSION="7.88.1-10+deb12u12"
|
||||
ARG CURL_VERSION="7.88.1-10+deb12u14"
|
||||
# renovate: release=bullseye depName=git
|
||||
ARG GIT_VERSION="1:2.39.5-0+deb12u2"
|
||||
# renovate: release=bullseye depName=lcov
|
||||
ARG LCOV_VERSION="1.16-1"
|
||||
# renovate: release=bullseye depName=ca-certificates
|
||||
ARG CA_CERTIFICATES_VERSION="20230311"
|
||||
ARG CA_CERTIFICATES_VERSION="20230311+deb12u1"
|
||||
# renovate: release=bullseye depName=unzip
|
||||
ARG UNZIP_VERSION="6.0-28"
|
||||
|
||||
@@ -150,9 +150,9 @@ 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.15+6-1~deb12u1"
|
||||
ARG OPENJDK_17_JDK_HEADLESS_VERSION="17.0.16+8-1~deb12u1"
|
||||
# renovate: release=bullseye depName=sudo
|
||||
ARG SUDO_VERSION="1.9.13p3-1+deb12u1"
|
||||
ARG SUDO_VERSION="1.9.13p3-1+deb12u2"
|
||||
|
||||
USER root
|
||||
RUN apt-get update \
|
||||
|
||||
@@ -2,6 +2,39 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [3.35.4] - 2025-09-20
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.35.4 (#381)
|
||||
|
||||
## [3.35.3] - 2025-09-05
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.35.3 (#379)
|
||||
|
||||
## [3.35.2] - 2025-08-29
|
||||
|
||||
### 📚 Documentation
|
||||
|
||||
- Add issue templates (#376)
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Create CODE_OF_CONDUCT.md (#374)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.35.2 (#378)
|
||||
|
||||
## [3.35.1] - 2025-08-17
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
- *(deps)* Update react monorepo to v19.1.1 (#369)
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.35.1 (#371)
|
||||
|
||||
## [3.32.8] - 2025-07-29
|
||||
|
||||
### 🐛 Bug Fixes
|
||||
|
||||
+47
-10
@@ -1,3 +1,17 @@
|
||||
package config
|
||||
|
||||
import "list"
|
||||
|
||||
#CommandTests: {
|
||||
name: _
|
||||
setup?: _
|
||||
teardown?: _
|
||||
command: _
|
||||
args: _
|
||||
expectedOutput?: [string]
|
||||
excludedOutput?: _
|
||||
}
|
||||
|
||||
#FileContentTests: {
|
||||
name: string
|
||||
path: _
|
||||
@@ -6,24 +20,47 @@
|
||||
|
||||
#ContainerStructureTest: {
|
||||
schemaVersion: _
|
||||
commandTests: _
|
||||
commandTests: [...#CommandTests]
|
||||
fileContentTests: [...#FileContentTests]
|
||||
}
|
||||
|
||||
input: #ContainerStructureTest
|
||||
|
||||
android_cmdline_tools_version: string @tag(android_cmdline_tools_version)
|
||||
android_cmdline_tools_test_expected_content: string @tag(android_cmdline_tools_test_expected_content)
|
||||
android_cmdline_tools_version: string @tag(android_cmdline_tools_version)
|
||||
android_ndk_version: string @tag(android_ndk_version)
|
||||
android_sdk_build_tools_version: string @tag(android_sdk_build_tools_version)
|
||||
|
||||
output: {
|
||||
schemaVersion: input.schemaVersion
|
||||
commandTests: input.commandTests
|
||||
fileContentTests: [
|
||||
{
|
||||
name: "Android SDK Command-line Tools is version \(android_cmdline_tools_version)"
|
||||
path: input.fileContentTests[0].path
|
||||
expectedContents: [android_cmdline_tools_test_expected_content]
|
||||
|
||||
commandTests: list.Concat([
|
||||
list.Take(input.commandTests, 1),
|
||||
[
|
||||
{
|
||||
name: input.commandTests[1].name
|
||||
command: input.commandTests[1].command
|
||||
args: input.commandTests[1].args
|
||||
expectedOutput: [android_sdk_build_tools_version]
|
||||
},
|
||||
{
|
||||
name: input.commandTests[2].name
|
||||
command: input.commandTests[2].command
|
||||
args: input.commandTests[2].args
|
||||
expectedOutput: [android_ndk_version]
|
||||
}
|
||||
],
|
||||
list.Drop(input.commandTests, 3),
|
||||
])
|
||||
|
||||
fileContentTests: list.Concat([
|
||||
if len(input.fileContentTests) > 0 {
|
||||
[{
|
||||
name: "Android SDK Command-line Tools is version \(android_cmdline_tools_version)"
|
||||
path: input.fileContentTests[0].path
|
||||
expectedContents: [android_cmdline_tools_test_expected_content]
|
||||
}],
|
||||
},
|
||||
input.fileContentTests[1]
|
||||
]
|
||||
list.Drop(input.fileContentTests, 1),
|
||||
])
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "edada7c56edf4a183c1735310e123c7f923584f1",
|
||||
"version": "3.32.8"
|
||||
"commit": "d693b4b9dbac2acd4477aea4555ca6dcbea44ba2",
|
||||
"version": "3.35.4"
|
||||
}
|
||||
}
|
||||
|
||||
+5
-5
@@ -1,26 +1,26 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "edada7c56edf4a183c1735310e123c7f923584f1",
|
||||
"version": "3.32.8"
|
||||
"commit": "d693b4b9dbac2acd4477aea4555ca6dcbea44ba2",
|
||||
"version": "3.35.4"
|
||||
},
|
||||
"android": {
|
||||
"platforms": [
|
||||
{
|
||||
"version": 35
|
||||
"version": 36
|
||||
}
|
||||
],
|
||||
"gradle": {
|
||||
"version": "8.12"
|
||||
},
|
||||
"buildTools": {
|
||||
"version": "34.0.0"
|
||||
"version": "35.0.0"
|
||||
},
|
||||
"cmdlineTools": {
|
||||
"version": "19.0"
|
||||
},
|
||||
"ndk": {
|
||||
"version": "26.3.11579264"
|
||||
"version": "27.0.12077973"
|
||||
},
|
||||
"cmake": {
|
||||
"version": "3.22.1"
|
||||
|
||||
Generated
+7
-7
@@ -6036,24 +6036,24 @@
|
||||
}
|
||||
},
|
||||
"node_modules/react": {
|
||||
"version": "19.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-19.1.0.tgz",
|
||||
"integrity": "sha512-FS+XFBNvn3GTAWq26joslQgWNoFu08F4kl0J4CgdNKADkdSGXQyTCnKteIAJy96Br6YbpEU1LSzV5dYtjMkMDg==",
|
||||
"version": "19.1.1",
|
||||
"resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz",
|
||||
"integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=0.10.0"
|
||||
}
|
||||
},
|
||||
"node_modules/react-dom": {
|
||||
"version": "19.1.0",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.0.tgz",
|
||||
"integrity": "sha512-Xs1hdnE+DyKgeHJeJznQmYMIBG3TKIHJJT95Q58nHLSrElKlGQqDTR2HQ9fx5CN/Gk6Vh/kupBTDLU11/nDk/g==",
|
||||
"version": "19.1.1",
|
||||
"resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz",
|
||||
"integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"scheduler": "^0.26.0"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"react": "^19.1.0"
|
||||
"react": "^19.1.1"
|
||||
}
|
||||
},
|
||||
"node_modules/readdirp": {
|
||||
|
||||
@@ -23,7 +23,7 @@ The images includes the minimum tools to run Flutter and build apps. The version
|
||||
|
||||
## Features
|
||||
|
||||
* Installed Flutter SDK 3.32.8.
|
||||
* Installed Flutter SDK 3.35.4.
|
||||
* 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.228.0.
|
||||
@@ -32,23 +32,23 @@ The images includes the minimum tools to run Flutter and build apps. The version
|
||||
Predownloaded SDKs and tools in Android:
|
||||
|
||||
* Licenses accepted
|
||||
* Android SDK Platforms: 35
|
||||
* Android NDK: 26.3.11579264
|
||||
* Android SDK Platforms: 36
|
||||
* Android NDK: 27.0.12077973
|
||||
* Gradle: 8.12
|
||||
|
||||
## Running Containers
|
||||
|
||||
| Registry | flutter-android |
|
||||
| ------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
|
||||
| Docker Hub | [gmeligio/flutter-android:3.32.8](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.32.8](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.32.8](https://quay.io/repository/gmeligio/flutter-android) |
|
||||
| Docker Hub | [gmeligio/flutter-android:3.35.4](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.35.4](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.35.4](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.32.8 bash
|
||||
docker run --rm -it ghcr.io/gmeligio/flutter-android:3.35.4 bash
|
||||
```
|
||||
|
||||
On a workflow in GitHub Actions:
|
||||
@@ -58,7 +58,7 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-22.04
|
||||
container:
|
||||
image: ghcr.io/gmeligio/flutter-android:3.32.8
|
||||
image: ghcr.io/gmeligio/flutter-android:3.35.4
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
@@ -70,7 +70,7 @@ On a `.gitlab-ci.yml` in GitLab CI:
|
||||
|
||||
```yaml
|
||||
build:
|
||||
image: ghcr.io/gmeligio/flutter-android:3.32.8
|
||||
image: ghcr.io/gmeligio/flutter-android:3.35.4
|
||||
script:
|
||||
- flutter build apk
|
||||
```
|
||||
@@ -91,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.32.8
|
||||
* Flutter version: 3.32.8
|
||||
* Docker image: gmeligio/flutter-android:3.35.4
|
||||
* Flutter version: 3.35.4
|
||||
|
||||
## Building Locally
|
||||
|
||||
The android.Dockerfile expects a few arguments:
|
||||
|
||||
* `flutter_version <string>`: The version of Flutter to use when building. Example: 3.32.8
|
||||
* `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
|
||||
* `flutter_version <string>`: The version of Flutter to use when building. Example: 3.35.4
|
||||
* `android_build_tools_version <string>`: The version of the Android SDK Build Tools to install. Example: 35.0.0
|
||||
* `android_platform_versions <list>`: The versions of the Android SDK Platforms to install, separated by spaces. Example: 36
|
||||
|
||||
```bash
|
||||
# Android
|
||||
docker build --target android --build-arg flutter_version=3.32.8 --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 .
|
||||
docker build --target android --build-arg flutter_version=3.35.4 --build-arg fastlane_version=2.228.0 --build-arg android_build_tools_version=35.0.0 --build-arg android_platform_versions="36" -t android-test .
|
||||
```
|
||||
|
||||
## Roadmap
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
java -version 2>&1 | awk -F[\".] '/version/ {print $2}'
|
||||
@@ -0,0 +1 @@
|
||||
jq -r '.releases[] | select(.channel=="stable") | max_by(.release_date) | .version'
|
||||
@@ -1 +1,4 @@
|
||||
sdkmanager --list | grep 'build-tools' | awk '{print $1}' | grep -oP 'build-tools;\d+\.\d+\.\d+$' | tail -1
|
||||
|
||||
# Get 36.0.0 from `build-tools;36.0.0:build-tools`
|
||||
curl -s https://raw.githubusercontent.com/flutter/flutter/refs/tags/3.35.1/engine/src/flutter/tools/android_sdk/packages.txt | grep 'build-tools' | awk -F'[;:]' '{print $2}'
|
||||
@@ -1,5 +1,4 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
# TODO: Update all versions used in android.yml from version.json, like NDK, CMake, etc.
|
||||
|
||||
# Path to the JSON and YAML files
|
||||
@@ -12,6 +11,8 @@ android_cmdline_tools_version=$(cue eval -e 'android.cmdlineTools.version' "$ver
|
||||
android_cmdline_tools_test_expected_content="Pkg.Revision=$android_cmdline_tools_version
|
||||
Pkg.Path=cmdline-tools;$android_cmdline_tools_version
|
||||
Pkg.Desc=Android SDK Command-line Tools"
|
||||
android_ndk_version=$(cue eval -e 'android.ndk.version' "$version_file_path" | tr -d '"')
|
||||
android_sdk_build_tools_version=$(cue eval -e 'android.buildTools.version' "$version_file_path" | tr -d '"')
|
||||
|
||||
# Check if the version value is not empty
|
||||
if [ -z "$android_cmdline_tools_version" ]; then
|
||||
@@ -21,8 +22,8 @@ fi
|
||||
|
||||
|
||||
# Update the version YAML file using cue
|
||||
cue export config/android.cue -l input: ./test/android.yml -t android_cmdline_tools_version="$android_cmdline_tools_version" -t android_cmdline_tools_test_expected_content="$android_cmdline_tools_test_expected_content" -e output --out yaml >"$temp_file_path"
|
||||
cue export config/android.cue -l input: ./test/android.yml -t android_cmdline_tools_version="$android_cmdline_tools_version" -t android_cmdline_tools_test_expected_content="$android_cmdline_tools_test_expected_content" -t android_ndk_version="$android_ndk_version" -t android_sdk_build_tools_version="$android_sdk_build_tools_version" -e output --out yaml >"$temp_file_path"
|
||||
mv "$temp_file_path" "$test_file_path"
|
||||
|
||||
# Write progress
|
||||
echo "Updated $test_file_path with android_cmdline_tools_version: $android_cmdline_tools_version"
|
||||
echo "Updated $test_file_path with android_cmdline_tools_version=$android_cmdline_tools_version, android_ndk_version=$android_ndk_version"
|
||||
|
||||
+2
-2
@@ -24,13 +24,13 @@ commandTests:
|
||||
args:
|
||||
- /home/flutter/sdks/android-sdk/build-tools
|
||||
expectedOutput:
|
||||
- 34.0.0
|
||||
- 35.0.0
|
||||
- name: Android NDK is pinned
|
||||
command: ls
|
||||
args:
|
||||
- /home/flutter/sdks/android-sdk/ndk
|
||||
expectedOutput:
|
||||
- 26.3.11579264
|
||||
- 27.0.12077973
|
||||
- name: CMake is pinned
|
||||
command: ls
|
||||
args:
|
||||
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
# escape=`
|
||||
|
||||
FROM mcr.microsoft.com/windows/servercore:ltsc2025@sha256:e4d4b91f739636a7288d0189be0c5d61dccfd719e3d42af3ae591f77e41e58d5 as flutter
|
||||
FROM mcr.microsoft.com/windows/servercore:ltsc2025@sha256:570916ae0393ca7784819b7ab17776b958ca702922c56dda1ae4e0eaadcac57f as flutter
|
||||
|
||||
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user