基于 Linux 容器远程开发,
.devcontainer/Dockerfile
FROM jianboy/flutter-dev-container:3.13.5
锁定版本:
flutter 2.0.5
dart 2.12.3
gradle 7.4-all
java 17
kotlin 1.7.10
android sdk 33
flutter 3.7.12
dart 2.19.6
gradle 7.4-all
java 17
kotlin 1.7.10
android sdk 21-33
flutter 3.19.6
dart
gradle tool 7.2.2 gradle-7.5-all.zip
java 17.0.11-ms
21.0.1-ms
11.0.23-ms
kotlin 1.7.10
android sdk 21-33
coding 目前在用的版本:
sift-docker.pkg.coding.net/flutter-team/dev-container/dev-allinone:1.0.12-flutter
支持 flutter 开发 更新 python3 支持,环境变量添加到.bashrc
Codespaces在用的版本:
codespaces默认环境就集成了众多开发语言,但是不包含flutter,为此只需要未flutter创建容器即可:
docker login --username jianboy
docker build -f .devcontainer/Dockerfile2 -t jianboy/flutter-dev-container:3.13.5 .
docker push jianboy/flutter-dev-container:3.13.5
已知问题:无法使用docker,无其他环境
构建 apk
- uses: gradle/gradle-build-action@v2
with:
arguments: publishToMavenLocal
rclone 同步apk
# Setup Rclone
- name: Setup Rclone
uses: AnimMouse/setup-rclone@v1
with:
rclone_config: ${{ secrets.RCLONE_CONFIG }}
# # Sync from Tencent COS
- name: Rclone Sync
run: |
rclone copy TencentCOS:${{ secrets.COS_CDN_BUCKET }} ./ --transfers=8 --checkers=16
env:
RCLONE_CONFIG_PASS: ${{ secrets.RCLONE_CONFIG_PASS }}
# Rclone Sync to B2 & R2
- name: Rclone Sync
run: |
rclone copy ./ Cloudflare:${{ secrets.CF_R2_BUCKET }} --transfers=8 --checkers=16 --exclude=.git/** --exclude=.github/** --exclude=README.md
rclone copy ./ Backblaze:${{ secrets.B2_BUCKET }} --transfers=8 --checkers=16 --exclude=.git/** --exclude=.github/** --exclude=README.md
env:
RCLONE_CONFIG_PASS: ${{ secrets.RCLONE_CONFIG_PASS }}
本章介绍通过 github 托管代码,每次提交代码,github action 自动触发构建ipa,发布IOS。
打包证书 .p12, 描述文件 .mobileprovision
P12_BASE64 P12_PASSWORD
- name: Install Apple Certificate
uses: apple-actions/import-codesign-certs@v1
with:
p12-file-base64: ${{ secrets.P12_BASE64 }}
p12-password: ${{ secrets.P12_PASSWORD }}
包含初始化安卓环境,构建,推送消息,提交,上传到应用商店等等
配置 SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} 通知的路径
需要到 google console 生成 service_account.json,配置 {{ secrets.SERVICE_ACCOUNT_JSON }}
一种方法可以在代码中存放 keys.jks,然后在 build.gradle 上配置 sign。另外一种方法,使用 r0adkll/sign-android-release@v1,配置 ${{ secrets.SIGNING_KEY }} 等四个参数。
docker login
docker build -f .devcontainer/Dockerfile2 -t jianboy/android-dev-container:v1.0.1 .
docker push
通过docker快速启动一个 Jenkins 服务,配置好环境,插件,构建任务,即可实现自动化构建,部署,通知等功能。
docker run -d -p 8080:8080 -p 50000:50000 -v /var/jenkins_home:/var/jenkins_home jenkins/jenkins:lts
配置文件android-studio\Jenkinsfile
travis是比较早的ci/cd平台,通过 travis-ci 实现自动化构建,部署,通知等功能。主要提供php,nodejs,python等语言的支持,目前是收费的。
配置 android-studio\.travis.yml
通过 .gitpod.yml
和 .gitpod.Dockfile
配置开发环境,实现远程开发。
FROM gitpod/workspace-full-vnc
容器包含 VNC 服务,可以通过浏览器访问远程桌面,在做桌面开发十分有效。
此外提供了很多开发环境,如 nodejs,python,java,go,rust等等,可以安装 Chrome 浏览器,远程连接 adb。
配置 .gitlab-ci.yml
文件,实现自动化构建,部署,通知等功能。
一般用来开发微软相关的项目,如.net,azure等,提供windows,linux,mac主机构建,。
配置 dotnet\azure-pipelines.yml