使用GitHub Actions在存储库中自定义和执行软件开发工作流程
Actions 的文件后缀为 yml 或 yaml
Actions 语法
name : action 简介
on: action 触发条件
单个触发条件 on: push
多个触发条件 on: [push, pull_request]
复合触发条件
on:
# Trigger the workflow on push or pull request,
# but only for the main branch
push:
branches:
- main
pull_request:
branches:
- main
# Also trigger on page_build, as well as release created events
page_build:
release:
types: # This configuration does not affect the page_build event above
- created
手动触发条件
jobs: action 相关配置
name: Android CI
on: [push]
jobs:
# job
build:
# 运行环境: ubuntu-latest, window-latest, macos-latest
runs-on: ubuntu-latest
# job 执行步骤
steps:
# 拷贝代码
- uses: actions/checkout@v2
# 配置 jdk
- name: set up JDK 1.8
uses: actions/setup-java@v1
with:
java-version: 1.8
# 初始化子仓库
- name: init submodule
run: git submodule update --init
# 添加 gradlew 执行权限
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Build with Gradle
run: ./gradlew build
# - name: upload artifacts
# uses: actions/upload-artifact@v2
# with:
# name: app-apk
# path: app/build/outputs
- name: Cache
uses: actions/cache@v2
with:
path: app/build/outputs
key: outputs
上传 artifact
- name: upload artifact
uses: actions/upload-artifact@v2
with:
# artifact name 用于下载 artifact
name: app-apk
path: app/build/outputs
下载 artifact
# 注意:您只能下载在同一工作流程运行期间上传的工件(同一个 yml 文件内的流程)
- name: Download artifact
uses: actions/download-artifact@v2
with:
name: app-apk
缓存文件(可跨 yml 文件)
- name: Cache
uses: actions/cache@v2
with:
path: app/build/outputs
key: outputs