跳至主要内容

向工作流添加脚本

您可以使用 GitHub Actions 工作流来运行脚本。

您可以使用 GitHub Actions 工作流来运行脚本和 shell 命令,这些命令随后在分配的运行器上执行。此示例演示如何使用 run 关键字在运行器上执行命令 npm install -g bats

jobs:
  example-job:
    runs-on: ubuntu-latest
    steps:
      - run: npm install -g bats

要使用工作流运行存储在存储库中的脚本,您必须首先将存储库检出到运行器。完成此操作后,您可以使用run关键字在运行器上运行脚本。以下示例运行两个脚本,每个脚本都在一个单独的作业步骤中。脚本在运行器上的位置通过为运行命令设置默认工作目录来指定。有关更多信息,请参阅“设置默认 shell 和工作目录”。

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Run a script
        run: ./my-script.sh
      - name: Run another script
        run: ./my-other-script.sh

您希望工作流作业运行的任何脚本都必须是可执行的。您可以通过在工作流中将脚本作为参数传递给将运行脚本的解释器来实现此目的 - 例如,run: bash script.sh - 或通过使文件本身可执行来实现此目的。您可以使用命令git update-index --chmod=+x PATH/TO/YOUR/script.sh在本地授予文件执行权限,然后将文件提交并推送到存储库。或者,对于在 Linux 和 Mac 运行器上运行的工作流,您可以在运行脚本之前,在工作流作业中添加一个命令来授予文件执行权限。

jobs:
  example-job:
    runs-on: ubuntu-latest
    defaults:
      run:
        working-directory: ./scripts
    steps:
      - name: Check out the repository to the runner
        uses: actions/checkout@v4  
      - name: Make the script files executable
        run: chmod +x my-script.sh my-other-script.sh
      - name: Run the scripts
        run: |
          ./my-script.sh
          ./my-other-script.sh

有关run关键字的更多信息,请参阅“GitHub Actions 的工作流语法”。