{"meta":{"title":"添加脚本到工作流程","intro":"还可以使用 GitHub Actions 工作流来运行脚本。","product":"GitHub Actions","breadcrumbs":[{"href":"/zh/actions","title":"GitHub Actions"},{"href":"/zh/actions/how-tos","title":"操作方法"},{"href":"/zh/actions/how-tos/write-workflows","title":"编写工作流"},{"href":"/zh/actions/how-tos/write-workflows/choose-what-workflows-do","title":"选择工作流执行的操作"},{"href":"/zh/actions/how-tos/write-workflows/choose-what-workflows-do/add-scripts","title":"添加脚本"}],"documentType":"article"},"body":"# 添加脚本到工作流程\n\n还可以使用 GitHub Actions 工作流来运行脚本。\n\n可以使用 GitHub Actions 工作流来运行脚本和 shell 命令，然后在指定的运行器上执行。 此示例演示如何使用 `run` 关键字在运行器上执行 `npm install -g bats` 命令。\n\n```yaml\njobs:\n  example-job:\n    runs-on: ubuntu-latest\n    steps:\n      - run: npm install -g bats\n```\n\n要使用工作流运行存储在存储库中的脚本，必须先将存储库签出到运行器。 完成此操作后，即可使用 `run` 关键字在运行器上运行脚本。 以下示例运行两个脚本，每个脚本在单独的作业步骤中运行。 脚本在运行器上的位置通过设置运行命令的默认工作目录加以指定。 有关详细信息，请参阅“[设置默认 shell 和工作目录](/zh/actions/using-jobs/setting-default-values-for-jobs)”。\n\n```yaml\njobs:\n  example-job:\n    runs-on: ubuntu-latest\n    defaults:\n      run:\n        working-directory: ./scripts\n    steps:\n      - name: Check out the repository to the runner\n        uses: actions/checkout@v6\n      - name: Run a script\n        run: ./my-script.sh\n      - name: Run another script\n        run: ./my-other-script.sh\n```\n\n希望工作流作业运行的任何脚本，都必须是可执行脚本。 可以在工作流中执行此操作：方法一是将脚本作为参数（例如 `run: bash script.sh`），传递给将运行脚本的解释器；方法二是让文件本身变成可执行文件。 可以通过在本地使用 `git update-index --chmod=+x PATH/TO/YOUR/script.sh` 命令来授予文件执行权限，然后将文件提交并推送到存储库。 另外，对于在 Linux 和 Mac 运行器上运行的工作流，可以在运行脚本之前添加一个命令，从而在工作流作业中授予文件执行权限：\n\n```yaml\njobs:\n  example-job:\n    runs-on: ubuntu-latest\n    defaults:\n      run:\n        working-directory: ./scripts\n    steps:\n      - name: Check out the repository to the runner\n        uses: actions/checkout@v6\n      - name: Make the script files executable\n        run: chmod +x my-script.sh my-other-script.sh\n      - name: Run the scripts\n        run: |\n          ./my-script.sh\n          ./my-other-script.sh\n```\n\n有关 `run` 关键字的详细信息，请参阅“[GitHub Actions 的工作流语法](/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun)”。"}