jq:在 GitLab CI 文件中找不到命令

Ram*_*amK 2 bash shell gitlab gitlab-ci

在.gitlab-ci.yml中

stages:
  - test-jq

    test-jq:
      stage: test-jq
      image: ruby:2.5
      script:
        - apt-get update
        - apt-get install -y git jq
        - git config --global user.email "$GITLAB_USER_EMAIL"
        - git config --global user.name "$GITLAB_USER_NAME"
        - LAST_COMMIT_SHA=$(
          curl -s \
           --header "PRIVATE-TOKEN:$CLONE_KEY" \
           "$CI_API_V4_URL/projects/$CI_PROJECT_ID/repository/commits/$CI_COMMIT_SHA" |\
           jq -r '.parent_ids | del(.[] | select(. == "'$CI_COMMIT_BEFORE_SHA'")) | .[-1]'

      )
Run Code Online (Sandbox Code Playgroud)

抛出错误:/bin/bash:第 158 行:jq:找不到命令

Von*_*onC 7

另一种方法是在脚本之前设置所有安装部分,如下所示,使用before_script

image: node:latest

before_script:
  - apt-get -qq update
  - apt-get install -y jq
Run Code Online (Sandbox Code Playgroud)

这样,您可以确保脚本启动后环境设置正确。