docs: add dual-platform execution for GIS Actions 4.0

This commit is contained in:
2026-07-20 08:55:03 +00:00
parent e7b961e535
commit 6602274910
+19 -9
View File
@@ -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 执行,调用系统 arcpyWindows
→ 结果写入工作目录 → 临时文件自动清理
``` ```
**用户不上传文件,永远提供本地路径。** **用户不上传文件,永远提供本地路径。**
@@ -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. 发布