Compare commits

..

No commits in common. "main" and "v0.2.0" have entirely different histories.
main ... v0.2.0

4 changed files with 9 additions and 60 deletions

View File

@ -1,27 +1,17 @@
FROM docker.io/debian:12-slim AS build
FROM docker.io/debian:12-slim as build
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
ca-certificates \
curl \
sdkmanager \
xz-utils \
&& rm -rf /var/lib/apt/lists/*
# https://docs.flutter.dev/release/archive
RUN curl https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.27.3-stable.tar.xz \
| tar --no-same-owner -C /opt/ -xJ
# https://developer.android.com/tools/releases/build-tools
ADD https://storage.googleapis.com/flutter_infra_release/releases/stable/linux/flutter_linux_3.24.5-stable.tar.xz /flutter.tar.xz
RUN tar -C /opt/ -xJf /flutter.tar.xz
RUN sdkmanager \
"build-tools;33.0.1" \
"build-tools;34.0.0" \
"build-tools;35.0.0" \
"cmdline-tools;9.0" \
"platform-tools" \
"platforms;android-33" \
"platforms;android-34" \
"platform-tools;35.0.2" \
"platforms;android-35"
# https://gradle.org/releases/
RUN curl -Lo /gradle.zip \
'https://services.gradle.org/distributions/gradle-8.12.1-bin.zip'
FROM docker.io/debian:12-slim
ENV DEBIAN_FRONTEND=noninteractive
@ -33,14 +23,9 @@ RUN apt-get update \
openjdk-17-jdk-headless \
unzip \
&& rm -rf /var/lib/apt/lists/*
COPY --from=build /opt/ /opt/
ENV GRADLE_ZIP=/gradle.zip
COPY --from=build /gradle.zip "$GRADLE_ZIP"
COPY --from=build --chown=0:0 /opt/ /opt/
ENV PATH="/opt/flutter/bin:$PATH"
RUN flutter config --android-sdk /opt/android-sdk/
RUN flutter precache --android
RUN yes | flutter doctor --android-licenses
COPY entrypoint.sh /usr/local/bin/
RUN flutter config --android-sdk /opt/android-sdk/ \
&& yes | flutter doctor --android-licenses > /dev/null
WORKDIR /app/
ENTRYPOINT ["entrypoint.sh"]
CMD ["build", "apk"]
ENTRYPOINT ["flutter"]

View File

@ -1,21 +0,0 @@
# docker-flutter
## Action
```yaml
- uses: icing/flutter@main
```
## Docker image
### Examples
- Run
```bash
docker volume create --ignore fluttercache
docker run --rm --network host -v "$PWD:/app/" -v "fluttercache:/home/gradle/.gradle/" git.gmoker.com/icing/flutter:main run
```
- Build
```bash
docker volume create --ignore fluttercache
docker run --rm -v "$PWD:/app/" -v "fluttercache:/home/gradle/.gradle/" git.gmoker.com/icing/flutter:main build apk
```
The apk will be found at `build/app/outputs/flutter-apk/app-release.apk`.

View File

@ -1,3 +0,0 @@
runs:
using: docker
image: git.gmoker.com/icing/flutter:main

View File

@ -1,12 +0,0 @@
#!/bin/bash
PROPS=android/gradle/wrapper/gradle-wrapper.properties
BAK=/bak
cp "$PROPS" "$BAK" || exit 1
# shellcheck disable=SC2064
trap "cp '$BAK' '$PROPS'" EXIT
sed -i "/^distributionUrl/s =.\+ =file\\://$GRADLE_ZIP " "$PROPS"
flutter --no-version-check "$@"