基于 Linux 容器远程开发,
.devcontainer/Dockerfile
FROM jianboy/flutter-dev-container:3.13.5
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
构建 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自动触发构建,发布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 快速切换版本开发环境
如,项目需要在node14环境下开发,可以使用以下方式:
docker run --rm -it -v /workspace:/app node:14 /bin/bash
-v /workspace:/app 挂载本地目录到容器内,/workspace 为本地目录,/app 为容器内目录
有时候,项目需要一些额外开发环境,可以新建一个 Dockerfile 文件,构建一个本地镜像
FROM node:14
WORKDIR /app
# todo
然后使用该镜像启动容器:
docker build -t jianboy/node-hexo:14 .
docker run --rm -it -v /workspace:/app node:14 /bin/bash
如,项目需要在python3.8环境下开发,可以使用以下方式:
docker run --rm -it -v /workspace:/app python:3.8 /bin/bash
如,项目需要在golang1.15环境下开发,可以使用以下方式:
docker run --rm -it -v /workspace:/app golang:1.15 /bin/bash