今天看到一个觉得很6的github,他会及时的将v2ex的热门文章更新到readme.md离。
https://github.com/lonnyzhang423/v2ex-hot-hub
于是乎,我就发到群里,群里的大佬对我进行了耐的教育。
然后就有了我要研究action的想法。 下面就不废话了,直接上正文了。
GitHub Actions 是 GitHub 提供的持续集成和持续部署(CI/CD)服务,能够帮助自动化软件开发流程。它允许你定义一个工作流,在特定的事件发生时自动执行一系列任务。以下是 GitHub Actions 的基本用法:
工作流 (Workflow):自动化流程的核心单元。工作流文件是一个以 .yml
或 .yaml
结尾的 YAML 文件,通常放置在 .github/workflows/
目录中。
事件 (Event):触发工作流的特定活动,如代码推送、拉取请求、计划任务等。
作业 (Job):工作流中的一个步骤集。一个工作流可以包含多个作业,这些作业可以并行或顺序执行。
步骤 (Step):作业中的一个单元操作,可以是执行命令或运行操作。
操作 (Action):复用步骤的单元,可以是社区共享的也可以是自己定义的。
在你的 GitHub 仓库中创建 .github/workflows
目录,然后在该目录下创建一个 .yml
文件,例如 ci.yml
:
name: CIon: [push, pull_request]jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: '14' - name: Install dependencies run: npm install - name: Run tests run: npm test
在上面的例子中,on: [push, pull_request]
表示当代码推送或拉取请求时触发工作流。
工作流中定义了一个名为 build
的作业,该作业运行在最新的 Ubuntu 环境 (runs-on: ubuntu-latest
) 上。
步骤 steps
中,使用了两个现成的操作 (actions/checkout@v2
和 actions/setup-node@v2
),以及两个自定义步骤 (npm install
和 npm test
)。
你可以定义多个作业并指定它们之间的依赖关系:
jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - run: npm install - run: npm test deploy: runs-on: ubuntu-latest needs: build steps: - run: echo "Deploying application..."
在 GitHub 仓库的设置中,你可以添加秘密(如 API 密钥),在工作流中可以这样使用:
steps:- name: Deploy run: echo "Deploying..." env: API_KEY: ${{ secrets.API_KEY }}
你可以使用 cron 表达式来定期触发工作流:
on: schedule: - cron: '0 0 * * *' # 每天午夜触发
GitHub Actions 是一个强大且灵活的工具,能大大简化和自动化软件开发的多个环节。通过定义工作流文件,你可以轻松实现自动化构建、测试和部署等操作,提高开发效率和代码质量。