docs: add dual-platform execution for GIS Actions 4.0
This commit is contained in:
@@ -6,14 +6,20 @@
|
|||||||
|
|
||||||
### 0. 理解执行环境
|
### 0. 理解执行环境
|
||||||
|
|
||||||
你的脚本最终跑在**用户本地的 Docker 容器**里。数据流如下:
|
你的脚本可以跑在两种环境下:
|
||||||
|
1. **Linux Docker 容器**(默认):现有 gis-base 镜像
|
||||||
|
2. **Windows 本机进程**(arcpy/python3):通过 agc.exe 直接 subprocess 执行
|
||||||
|
|
||||||
|
执行环境由 workflow.yaml 中步骤的 `runtime` 字段决定。
|
||||||
|
|
||||||
```
|
```
|
||||||
你的代码 → 打包为脚本包 → 发布到套件市场
|
你的代码 → 打包为脚本包 → 发布到套件市场(标记 platform: linux/windows/all)
|
||||||
↓
|
↓
|
||||||
用户执行套件 → gis-actions 从市场下载脚本包 → docker run
|
用户执行套件 → agc 从市场下载脚本包
|
||||||
→ 用户数据复制到容器内 → 脚本处理 → 结果写入 /tmp/output/
|
├─ runtime: docker → Docker 容器执行(Linux)
|
||||||
→ 脚本包清理 → 结果留在用户机器
|
├─ runtime: python3 → subprocess 执行(Linux + Windows)
|
||||||
|
└─ runtime: arcpy → subprocess 执行,调用系统 arcpy(Windows)
|
||||||
|
→ 结果写入工作目录 → 临时文件自动清理
|
||||||
```
|
```
|
||||||
|
|
||||||
**用户不上传文件,永远提供本地路径。**
|
**用户不上传文件,永远提供本地路径。**
|
||||||
@@ -42,9 +48,10 @@ curl -s "https://suites.mercator.cn/api/v1/suites" | python3 -m json.tool
|
|||||||
name: 我的套件
|
name: 我的套件
|
||||||
description: 套件功能描述
|
description: 套件功能描述
|
||||||
version: 1.0.0
|
version: 1.0.0
|
||||||
|
platform: all # linux / windows / all
|
||||||
slug: my-suite-en-name # 可选
|
slug: my-suite-en-name # 可选
|
||||||
tags: [标签1]
|
tags: [标签1]
|
||||||
base_image: gis-base:latest
|
base_image: gis-base:latest # 仅 Docker 模式需要
|
||||||
|
|
||||||
params:
|
params:
|
||||||
input_path:
|
input_path:
|
||||||
@@ -55,6 +62,7 @@ params:
|
|||||||
steps:
|
steps:
|
||||||
- id: step1
|
- id: step1
|
||||||
name: 第一步
|
name: 第一步
|
||||||
|
runtime: python3 # docker / python3 / arcpy
|
||||||
script_id: run
|
script_id: run
|
||||||
params:
|
params:
|
||||||
input: $params.input_path
|
input: $params.input_path
|
||||||
@@ -63,9 +71,11 @@ steps:
|
|||||||
### 5. 测试
|
### 5. 测试
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
agc run /tmp/test-output \
|
# Linux
|
||||||
--suite-id <suite-id> \
|
agc run /tmp/test-output --suite-id <suite-id> --input input_path=/path/to/test.shp
|
||||||
--input input_path=/path/to/test.shp
|
|
||||||
|
# Windows
|
||||||
|
agc run C:\test-output --suite-id <suite-id> --input input_path=C:\test.shp
|
||||||
```
|
```
|
||||||
|
|
||||||
### 6. 发布
|
### 6. 发布
|
||||||
|
|||||||
Reference in New Issue
Block a user