mirror of
https://github.com/gmeligio/flutter-docker-image.git
synced 2026-05-24 12:30:34 +00:00
Compare commits
49 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 0d25c577cb | |||
| c569ba7b0c | |||
| ba9ff36db0 | |||
| 4cddcea7b4 | |||
| 0d31f67ad2 | |||
| 18b3e138b2 | |||
| d25c95b07a | |||
| daf29cb53c | |||
| 5a8df53369 | |||
| 8ef9faedfb | |||
| 78ac5b7f06 | |||
| 52285d2588 | |||
| d17712eb8a | |||
| 9584814388 | |||
| 7460e97f45 | |||
| a290bf28c3 | |||
| c9e5d504a0 | |||
| 719f1ee3c4 | |||
| dab70e7e9c | |||
| 282af4caac | |||
| 174020461b | |||
| cc23212035 | |||
| 94ce0684d4 | |||
| 3b76d4c78c | |||
| c5a453f021 | |||
| 2084aa62d7 | |||
| 5d87da6c3a | |||
| 6335d3f22a | |||
| 56134b64af | |||
| 67285c77fb | |||
| fd1168121a | |||
| f3c90f5a11 | |||
| cd61c75bf0 | |||
| c2ac9525bd | |||
| c2de027b49 | |||
| e642c38317 | |||
| 233c2178d6 | |||
| ba54de256a | |||
| 6090f0667a | |||
| 150bb4ecea | |||
| 69b7f74fb6 | |||
| 74248a1094 | |||
| 6b9e03009d | |||
| f8c0636810 | |||
| a32d4abcb9 | |||
| 8ed6bdbb8b | |||
| 9dba4d7096 | |||
| 94fd0aeebd | |||
| 2d63f3e6c7 |
@@ -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.
|
||||
@@ -26,7 +26,7 @@
|
||||
"^Dockerfile$"
|
||||
],
|
||||
"matchStrings": [
|
||||
"#\\s*renovate:\\s*release=(?<release>.*?) depName=(?<depName>.*?)\\sARG .*?_VERSION=\"(?<currentValue>.*)\"\\s"
|
||||
"#\\s*renovate:\\s*suite=(?<suite>.*?) depName=(?<depName>.*?)\\sARG .*?_VERSION=\"(?<currentValue>.*)\"\\s"
|
||||
],
|
||||
"registryUrlTemplate": "https://deb.debian.org/debian?{{#if release }}release={{release}}{{else}}suite=stable{{/if}}&components=main,contrib,non-free&binaryArch=amd64",
|
||||
"datasourceTemplate": "deb"
|
||||
|
||||
+20
-27
@@ -27,20 +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: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
|
||||
- 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 }}
|
||||
@@ -52,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: |
|
||||
@@ -61,10 +48,16 @@ jobs:
|
||||
type=raw,value=${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
||||
|
||||
- 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@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -90,7 +83,7 @@ jobs:
|
||||
# TODO: Parallelize testing and vulnerability scanning
|
||||
- name: Scan with Docker Scout
|
||||
id: docker-scout
|
||||
uses: docker/scout-action@381b657c498a4d287752e7f2cfb2b41823f566d9 # v1.17.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
|
||||
@@ -105,7 +98,7 @@ jobs:
|
||||
# debug: true
|
||||
# verbose-debug: true
|
||||
|
||||
validate_version:
|
||||
validate_version_files:
|
||||
runs-on: ubuntu-24.04
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
@@ -115,8 +108,8 @@ jobs:
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json and flutter_version.json with CUE
|
||||
run: |
|
||||
@@ -133,8 +126,8 @@ jobs:
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Generate test files with CUE
|
||||
run: |
|
||||
@@ -154,9 +147,9 @@ jobs:
|
||||
- name: Setup NodeJS
|
||||
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
|
||||
node-version: lts/*
|
||||
|
||||
- name: Update documentation
|
||||
working-directory: docs/src
|
||||
@@ -217,8 +210,8 @@ jobs:
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
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 }}
|
||||
@@ -2,6 +2,8 @@ on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths-ignore:
|
||||
- changelog.md
|
||||
workflow_dispatch:
|
||||
|
||||
# Read-only permissions by default
|
||||
@@ -31,10 +33,10 @@ jobs:
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
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 }}
|
||||
@@ -46,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: |
|
||||
@@ -55,10 +57,10 @@ jobs:
|
||||
type=raw,value=${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
||||
|
||||
- name: Build image and push to local Docker daemon
|
||||
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
load: true
|
||||
@@ -80,51 +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@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
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: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
|
||||
- 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
-80
@@ -1,20 +1,21 @@
|
||||
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
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-android
|
||||
@@ -24,14 +25,30 @@ 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@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
id: app-token
|
||||
- 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:
|
||||
app-id: ${{ secrets.VERIFIED_COMMIT_ID }}
|
||||
private-key: ${{ secrets.VERIFIED_COMMIT_KEY }}
|
||||
repositories: ${{ github.event.repository.name }}
|
||||
owner: ${{ github.repository_owner }}
|
||||
script: |
|
||||
const script = require('./script/setEnvironmentVariables.js')
|
||||
return await script({ core })
|
||||
|
||||
- name: Load image metadata
|
||||
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
|
||||
id: metadata
|
||||
with:
|
||||
images: |
|
||||
${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
ghcr.io/${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
quay.io/${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
tags: |
|
||||
type=raw,value=${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # v3.11.1
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@74a5d142397b4f367a81961eba4e8cd7edddf772 # v3.4.0
|
||||
@@ -53,40 +70,8 @@ jobs:
|
||||
username: ${{ secrets.QUAY_USERNAME }}
|
||||
password: ${{ secrets.QUAY_ROBOT_TOKEN }}
|
||||
|
||||
- name: Setup CUE
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
|
||||
- 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: Load image metadata
|
||||
uses: docker/metadata-action@902fa8ec7d6ecbf8d84d538b9b233a880e428804 # v5.7.0
|
||||
id: metadata
|
||||
with:
|
||||
images: |
|
||||
${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
ghcr.io/${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
quay.io/${{ env.IMAGE_REPOSITORY_PATH }}
|
||||
tags: |
|
||||
type=raw,value=${{ env.FLUTTER_VERSION }}
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@b5ca514318bd6ebac0fb2aedd5d36ec1b5c232a2 # v3.10.0
|
||||
|
||||
- name: Build image and push it to registries
|
||||
uses: docker/build-push-action@14487ce63c7a62a4a324b0bfb37086795e31c6c1 # v6.16.0
|
||||
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # v6.18.0
|
||||
with:
|
||||
file: android.Dockerfile
|
||||
push: true
|
||||
@@ -103,6 +88,27 @@ 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@432a30c9e07499fd01da9f8a49f0faf9e0ca5b77 # v4.0.2
|
||||
with:
|
||||
@@ -112,54 +118,98 @@ 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
|
||||
env:
|
||||
IMAGE_REPOSITORY_NAME: flutter-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@381b657c498a4d287752e7f2cfb2b41823f566d9 # v1.17.1
|
||||
uses: docker/scout-action@f8c776824083494ab0d56b8105ba2ca85c86e4de # v1.18.2
|
||||
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://${{ github.repository_owner }}/${{ env.IMAGE_REPOSITORY_NAME }}:${{ env.FLUTTER_VERSION }}
|
||||
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@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
||||
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@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
|
||||
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@28deaeda66b76a05916b6923827895f2b14ab387 # v3.28.16
|
||||
uses: github/codeql-action/upload-sarif@51f77329afa6477de8c49fc9c7046c15b9a4e79d # v3.29.5
|
||||
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,7 +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 }}
|
||||
flutter_version_artifact_id: ${{ steps.upload-version.outputs.artifact-id }}
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
@@ -35,8 +35,8 @@ jobs:
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json with CUE
|
||||
if: ${{ steps.update_flutter_version.outputs.result == 'true' }}
|
||||
@@ -60,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 }}
|
||||
@@ -69,12 +71,6 @@ 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:
|
||||
@@ -86,20 +82,11 @@ jobs:
|
||||
- name: Download artifact with the new Flutter version
|
||||
uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # v4.3.0
|
||||
with:
|
||||
artifact-ids: ${{ needs.update_flutter_version.outputs.version_artifact_id }}
|
||||
artifact-ids: ${{ needs.update_flutter_version.outputs.flutter_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@3ff1caaa28b64c9cc276ce0a02e2ff584f3900c5 # v2.0.2
|
||||
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: Copy Flutter version into version manifest and export FLUTTER_* environment variables
|
||||
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7.0.1
|
||||
with:
|
||||
@@ -136,22 +123,80 @@ 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: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
with:
|
||||
repo: cue-lang/cue
|
||||
tag: v0.12.0
|
||||
digest: e55cd5abd98a592c110f87a7da9ef15bc72515200aecfe1bed04bf86311f5ba1
|
||||
tag: v0.13.0
|
||||
digest: 59ba96137da07cd2cdd2e17ec33af81f850126f022f25dd96516f0b42071b6a9
|
||||
|
||||
- name: Validate version.json with CUE
|
||||
run: cue vet config/version.cue -d '#Version' config/version.json
|
||||
|
||||
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:
|
||||
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: npm
|
||||
cache-dependency-path: docs/src/package-lock.json
|
||||
node-version-file: docs/src/package.json
|
||||
node-version: lts/*
|
||||
|
||||
- name: Update documentation
|
||||
working-directory: docs/src
|
||||
@@ -159,21 +204,30 @@ jobs:
|
||||
npm ci --prefer-offline
|
||||
npm run build
|
||||
|
||||
- name: Setup git-cliff
|
||||
uses: jaxxstorm/action-install-gh-release@6096f2a2bbfee498ced520b6922ac2c06e990ed2 # v2.1.0
|
||||
- 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:
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
+23
-19
@@ -1,19 +1,19 @@
|
||||
FROM debian:12.11-slim@sha256:90522eeb7e5923ee2b871c639059537b30521272f10ca86fdbbbb2b75a8c40cd AS flutter
|
||||
FROM debian:13.1-slim@sha256:c2880112cc5c61e1200c26f106e4123627b49726375eb5846313da9cca117337 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"
|
||||
# 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"
|
||||
# renovate: release=bullseye depName=unzip
|
||||
ARG UNZIP_VERSION="6.0-28"
|
||||
# renovate: suite=trixie depName=curl
|
||||
ARG CURL_VERSION="8.14.1-2"
|
||||
# renovate: suite=trixie depName=git
|
||||
ARG GIT_VERSION="1:2.47.3-0+deb13u1"
|
||||
# renovate: suite=trixie depName=lcov
|
||||
ARG LCOV_VERSION="2.3.1-1"
|
||||
# renovate: suite=trixie depName=ca-certificates
|
||||
ARG CA_CERTIFICATES_VERSION="20250419"
|
||||
# renovate: suite=trixie depName=unzip
|
||||
ARG UNZIP_VERSION="6.0-29"
|
||||
|
||||
USER root
|
||||
RUN apt-get update \
|
||||
@@ -93,10 +93,10 @@ FROM flutter AS fastlane
|
||||
|
||||
SHELL ["/bin/bash", "-euxo", "pipefail", "-c"]
|
||||
|
||||
# renovate: release=bullseye depName=ruby-dev
|
||||
ARG RUBY_VERSION="1:3.1"
|
||||
# renovate: release=bullseye depName=build-essential
|
||||
ENV BUILD_ESSENTIAL_VERSION="12.9"
|
||||
# renovate: suite=trixie depName=ruby-dev
|
||||
ARG RUBY_VERSION="1:3.3"
|
||||
# renovate: suite=trixie depName=build-essential
|
||||
ENV BUILD_ESSENTIAL_VERSION="12.12"
|
||||
|
||||
USER root
|
||||
RUN apt-get update \
|
||||
@@ -149,12 +149,14 @@ ENV ANDROID_HOME="$SDK_ROOT/android-sdk" \
|
||||
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
|
||||
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"
|
||||
# renovate: release=bullseye depName=sudo
|
||||
ARG SUDO_VERSION="1.9.13p3-1+deb12u1"
|
||||
# renovate: suite=bookworm depName=openjdk-17-jdk-headless
|
||||
ARG OPENJDK_17_JDK_HEADLESS_VERSION="17.0.16+8-1~deb12u1"
|
||||
# renovate: suite=trixie depName=sudo
|
||||
ARG SUDO_VERSION="1.9.16p2-3"
|
||||
|
||||
USER root
|
||||
# Add debian 12 bookworm repository alongside debian 13 trixie to install Java 17
|
||||
COPY config/debian_12_bookworm.sources /etc/apt/sources.list.d/debian_12_bookworm.sources
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
# For Android x86 emulators
|
||||
@@ -172,6 +174,8 @@ RUN apt-get update \
|
||||
# To allow changing ownership in GitLab CI /builds
|
||||
sudo="$SUDO_VERSION" \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
# Delete debian 12 bookworm repository after installing Java 17
|
||||
&& rm /etc/apt/sources.list.d/debian_12_bookworm.sources \
|
||||
# To allow changing ownership in GitLab CI /builds
|
||||
&& echo "flutter ALL= NOPASSWD:/bin/chown -R flutter /builds, /bin/chown -R flutter /builds/*" >> /etc/sudoers.d/flutter
|
||||
|
||||
|
||||
@@ -2,6 +2,103 @@
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
## [3.35.5] - 2025-09-30
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Upgrade flutter to 3.35.5 (#383)
|
||||
|
||||
## [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
|
||||
|
||||
- *(deps)* Update dependency cross-env to v10 (#367)
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.8 (#365)
|
||||
|
||||
## [3.32.7] - 2025-07-17
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- Build image path to solve "skip output since it may contain secret" (#362)
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.7 (#364)
|
||||
|
||||
## [3.32.6] - 2025-07-13
|
||||
|
||||
### ⚙️ Miscellaneous Tasks
|
||||
|
||||
- *(release)* Update flutter dependencies in version.json for 3.32.6 (#361)
|
||||
|
||||
## [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
|
||||
@@ -10,6 +107,7 @@ All notable changes to this project will be documented in this file.
|
||||
- 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
|
||||
|
||||
|
||||
+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),
|
||||
])
|
||||
}
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
# Add debian 12 bookworm repository alongside debian 13 trixie to install Java 17
|
||||
|
||||
Types: deb
|
||||
URIs: http://deb.debian.org/debian
|
||||
Suites: bookworm bookworm-updates
|
||||
Components: main contrib non-free non-free-firmware
|
||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||
|
||||
Types: deb
|
||||
URIs: http://deb.debian.org/debian-security
|
||||
Suites: bookworm-security
|
||||
Components: main contrib non-free non-free-firmware
|
||||
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "be698c48a6750c8cb8e61c740ca9991bb947aba2",
|
||||
"version": "3.32.0"
|
||||
"commit": "ac4e799d237041cf905519190471f657b657155a",
|
||||
"version": "3.35.5"
|
||||
}
|
||||
}
|
||||
|
||||
+6
-6
@@ -1,32 +1,32 @@
|
||||
{
|
||||
"flutter": {
|
||||
"channel": "stable",
|
||||
"commit": "be698c48a6750c8cb8e61c740ca9991bb947aba2",
|
||||
"version": "3.32.0"
|
||||
"commit": "ac4e799d237041cf905519190471f657b657155a",
|
||||
"version": "3.35.5"
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"fastlane": {
|
||||
"version": "2.227.2"
|
||||
"version": "2.228.0"
|
||||
}
|
||||
}
|
||||
|
||||
Generated
+23
-442
@@ -9,7 +9,7 @@
|
||||
"version": "1.0.0",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.0.0",
|
||||
"mdx-to-md": "^0.5.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
@@ -29,6 +29,12 @@
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@epic-web/invariant": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@epic-web/invariant/-/invariant-1.0.0.tgz",
|
||||
"integrity": "sha512-lrTPqgvfFQtR/eY/qkIzp98OGdNJu0m5ji3q/nJI8v3SXkRKEnWiOxMmbvcSoAIzv/cGiuvRy57k4suKQSAdwA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@esbuild-plugins/node-resolve": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild-plugins/node-resolve/-/node-resolve-0.2.2.tgz",
|
||||
@@ -44,431 +50,6 @@
|
||||
"esbuild": "*"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/aix-ppc64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.2.tgz",
|
||||
"integrity": "sha512-wCIboOL2yXZym2cgm6mlA742s9QeJ8DjGVaL39dLN4rRwrOgOyYSnOaFPhKZGLb2ngj4EyfAFjsNJwPXZvseag==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"aix"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.2.tgz",
|
||||
"integrity": "sha512-NQhH7jFstVY5x8CKbcfa166GoV0EFkaPkCKBQkdPJFvo5u+nGXLEH/ooniLb3QI8Fk58YAx7nsPLozUWfCBOJA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-5ZAX5xOmTligeBaeNEPnPaeEuah53Id2tX4c2CVP3JaROTH+j4fnfHCkr1PjXMd78hMst+TlkfKcW/DlTq0i4w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/android-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-Ffcx+nnma8Sge4jzddPHCZVRvIfQ0kMsUsCMcJRHkGJ1cDmhe4SsrYIjLUKn1xpHZybmOqCWwB0zQvsjdEHtkg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"android"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-MpM6LUVTXAzOvN4KbjzU/q5smzryuoNjlriAIx+06RpecwCkL9JpenNzpKd2YMzLJFOdPqBpuub6eVRP5IgiSA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/darwin-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-5eRPrTX7wFyuWe8FqEFPG2cU0+butQQVNcT4sVipqjLYQjjh8a8+vUTfgBKM88ObB85ahsnTwF7PSIt6PG+QkA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-mLwm4vXKiQ2UTSX4+ImyiPdiHjiZhIaE9QvC7sw0tZ6HoNMjYAqQpGyui5VRIi5sGd+uWq940gdCbY3VLvsO1w==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/freebsd-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-6qyyn6TjayJSwGpm8J9QYYGQcRgc90nmfdUb0O7pp1s4lTY+9D0H9O02v5JqGApUyiHOtkz6+1hZNvNtEhbwRQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"freebsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.2.tgz",
|
||||
"integrity": "sha512-UHBRgJcmjJv5oeQF8EpTRZs/1knq6loLxTsjc3nxO9eXAPDLcWW55flrMVc97qFPbmZP31ta1AZVUKQzKTzb0g==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-gq/sjLsOyMT19I8obBISvhoYiZIAaGF8JpeXu1u8yPv8BE5HlWYobmlsfijFIZ9hIVGYkbdFhEqC0NvM4kNO0g==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ia32": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.2.tgz",
|
||||
"integrity": "sha512-bBYCv9obgW2cBP+2ZWfjYTU+f5cxRoGGQ5SeDbYdFCAZpYWrfjjfYwvUpP8MlKbP0nwZ5gyOU/0aUzZ5HWPuvQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-loong64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.2.tgz",
|
||||
"integrity": "sha512-SHNGiKtvnU2dBlM5D8CXRFdd+6etgZ9dXfaPCeJtz+37PIUlixvlIhI23L5khKXs3DIzAn9V8v+qb1TRKrgT5w==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-mips64el": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.2.tgz",
|
||||
"integrity": "sha512-hDDRlzE6rPeoj+5fsADqdUZl1OzqDYow4TB4Y/3PlKBD0ph1e6uPHzIQcv2Z65u2K0kpeByIyAjCmjn1hJgG0Q==",
|
||||
"cpu": [
|
||||
"mips64el"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-ppc64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.2.tgz",
|
||||
"integrity": "sha512-tsHu2RRSWzipmUi9UBDEzc0nLc4HtpZEI5Ba+Omms5456x5WaNuiG3u7xh5AO6sipnJ9r4cRWQB2tUjPyIkc6g==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-riscv64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.2.tgz",
|
||||
"integrity": "sha512-k4LtpgV7NJQOml/10uPU0s4SAXGnowi5qBSjaLWMojNCUICNu7TshqHLAEbkBdAszL5TabfvQ48kK84hyFzjnw==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-s390x": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.2.tgz",
|
||||
"integrity": "sha512-GRa4IshOdvKY7M/rDpRR3gkiTNp34M0eLTaC1a08gNrh4u488aPhuZOCpkF6+2wl3zAN7L7XIpOFBhnaE3/Q8Q==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/linux-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-QInHERlqpTTZ4FRB0fROQWXcYRD64lAoiegezDunLpalZMjcUcld3YzZmVJ2H/Cp0wJRZ8Xtjtj0cEHhYc/uUg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-talAIBoY5M8vHc6EeI2WW9d/CkiO9MQJ0IOWX8hrLhxGbro/vBXJvaQXefW2cP0z0nQVTdQ/eNyGFV1GSKrxfw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/netbsd-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-voZT9Z+tpOxrvfKFyfDYPc4DO4rk06qamv1a/fkuzHpiVBMOhpjK+vBmWM8J1eiB3OLSMFYNaOaBNLXGChf5tg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"netbsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-dcXYOC6NXOqcykeDlwId9kB6OkPUxOEqU+rkrYVqJbK2hagWOMrsTGsMr8+rW02M+d5Op5NNlgMmjzecaRf7Tg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/openbsd-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-t/TkWwahkH0Tsgoq1Ju7QfgGhArkGLkF1uYz8nQS/PPFlXbP5YgRpqQR3ARRiC2iXoLTWFxc6DJMSK10dVXluw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"openbsd"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/sunos-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-cfZH1co2+imVdWCjd+D1gf9NjkchVhhdpgb1q5y6Hcv9TP6Zi9ZG/beI3ig8TvwT9lH9dlxLq5MQBBgwuj4xvA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"sunos"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-arm64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.2.tgz",
|
||||
"integrity": "sha512-7Loyjh+D/Nx/sOTzV8vfbB3GJuHdOQyrOryFdZvPHLf42Tk9ivBU5Aedi7iyX+x6rbn2Mh68T4qq1SDqJBQO5Q==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-ia32": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.2.tgz",
|
||||
"integrity": "sha512-WRJgsz9un0nqZJ4MfhabxaD9Ft8KioqU3JMinOTvobbX6MOSUigSBlogP8QB3uxpJDsFS6yN+3FDBdqE5lg9kg==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@esbuild/win32-x64": {
|
||||
"version": "0.25.2",
|
||||
"resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.2.tgz",
|
||||
"integrity": "sha512-kM3HKb16VIXZyIeVrM1ygYmZBKybX8N4p754bw390wGO3Tf2j4L2/WYL+4suWujpgf6GBYs3jv7TyUivdd05JA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
],
|
||||
"peer": true,
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@fal-works/esbuild-plugin-global-externals": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz",
|
||||
@@ -890,20 +471,20 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cross-env": {
|
||||
"version": "7.0.3",
|
||||
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz",
|
||||
"integrity": "sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw==",
|
||||
"version": "10.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.0.0.tgz",
|
||||
"integrity": "sha512-aU8qlEK/nHYtVuN4p7UQgAwVljzMg8hB4YK5ThRqD2l/ziSnryncPNn7bMLt5cFYsKVKBh8HqLqyCoTupEUu7Q==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cross-spawn": "^7.0.1"
|
||||
"@epic-web/invariant": "^1.0.0",
|
||||
"cross-spawn": "^7.0.6"
|
||||
},
|
||||
"bin": {
|
||||
"cross-env": "src/bin/cross-env.js",
|
||||
"cross-env-shell": "src/bin/cross-env-shell.js"
|
||||
"cross-env": "dist/bin/cross-env.js",
|
||||
"cross-env-shell": "dist/bin/cross-env-shell.js"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=10.14",
|
||||
"npm": ">=6",
|
||||
"yarn": ">=1"
|
||||
"node": ">=20"
|
||||
}
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
@@ -6455,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": {
|
||||
|
||||
@@ -14,14 +14,11 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"cross-env": "^7.0.3",
|
||||
"cross-env": "^10.0.0",
|
||||
"mdx-to-md": "^0.5.0",
|
||||
"react": "^19.1.0",
|
||||
"react-dom": "^19.1.0",
|
||||
"remark-gfm": "^4.0.1",
|
||||
"remark-toc": "^9.0.0"
|
||||
},
|
||||
"volta": {
|
||||
"node": "22.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,32 +23,32 @@ The images includes the minimum tools to run Flutter and build apps. The version
|
||||
|
||||
## Features
|
||||
|
||||
* Installed Flutter SDK 3.32.0.
|
||||
* Installed Flutter SDK 3.35.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.2.
|
||||
* 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:
|
||||
|
||||
* 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.0](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.32.0](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.32.0](https://quay.io/repository/gmeligio/flutter-android) |
|
||||
| Docker Hub | [gmeligio/flutter-android:3.35.5](https://hub.docker.com/r/gmeligio/flutter-android) |
|
||||
| GitHub Container Registry | [ghcr.io/gmeligio/flutter-android:3.35.5](https://github.com/gmeligio/flutter-docker-image/pkgs/container/flutter-android) |
|
||||
| Quay | [quay.io/gmeligio/flutter-android:3.35.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.32.0 bash
|
||||
docker run --rm -it ghcr.io/gmeligio/flutter-android:3.35.5 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.0
|
||||
image: ghcr.io/gmeligio/flutter-android:3.35.5
|
||||
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.0
|
||||
image: ghcr.io/gmeligio/flutter-android:3.35.5
|
||||
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.0
|
||||
* Flutter version: 3.32.0
|
||||
* Docker image: gmeligio/flutter-android:3.35.5
|
||||
* Flutter version: 3.35.5
|
||||
|
||||
## Building Locally
|
||||
|
||||
The android.Dockerfile expects a few arguments:
|
||||
|
||||
* `flutter_version <string>`: The version of Flutter to use when building. Example: 3.32.0
|
||||
* `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.5
|
||||
* `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.0 --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 .
|
||||
docker build --target android --build-arg flutter_version=3.35.5 --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:c6b2b26058a096cb3f627ed03d0be66bea262c89222c988b516e63ae68f3ea72 as flutter
|
||||
FROM mcr.microsoft.com/windows/servercore:ltsc2025@sha256:25d131d0402e42725989569a1301504d56e0d786cefef33709dcc6c78d7845df as flutter
|
||||
|
||||
SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user