所以我正在尝试使用 Gitlab CI/CD 进行部署阶段。问题是当我运行我的 gitlab-ci.yml 文件时,它无法识别 dpl 命令:
我的 yaml 文件
image: node:8.9.3
stages:
- build
- sonarqube-check
- test
- staging
- production
- deploy
cache:
paths:
- .gradle/wrapper
- .gradle/caches
build:
stage: build
script:
- ./gradlew assemble
artifacts:
paths:
- build/libs/*.jar
expire_in: 1 week
only:
- master
sonarqube-check:
stage: test
image: gradle:jre11-slim
variables:
SONAR_USER_HOME: "${CI_PROJECT_DIR}/.sonar" # Defines the location of the analysis task cache
GIT_DEPTH: "0" # Tells git to fetch all the branches of the project, required by the analysis task
cache:
key: "${CI_JOB_NAME}"
paths:
- .sonar/cache
script: ./gradlew sonarqube
allow_failure: true
only:
- master
test:
stage: test
script:
- ./gradlew check
deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
staging:
type: deploy
stage: staging
image: ruby:latest
script:
- apt-get update -qy
- apt-get install -y ruby-dev
- gem install dpl
- dpl --provider=heroku --app=$HEROKU_APP_STAGING --api-key=$HEROKU_API_KEY
only:
- staging
production:
type: deploy
stage: production
image: ruby:latest
script:
- dpl --provider=heroku --app=$HEROKU_APP_PRODUCTION --api-key=$HEROKU_API_KEY
only:
- master
after_script:
- echo "End CI"
错误
Running with gitlab-runner 13.8.0 (775dd39d)
on Coalection Shell runner iMbS43WM
Preparing the "shell" executor
00:00
Using Shell executor...
Preparing environment
00:01
Running on DESKTOP-LJ3K6GB...
Getting source from Git repository
00:04
Fetching changes with git depth set to 50...
Reinitialized existing Git repository in D:/GitLab-Runner/builds/iMbS43WM/0/I437980/Coalection/.git/
Checking out cd5edeb9 as master...
Removing .gradle/
Removing build/
git-lfs/2.13.2 (GitHub; windows amd64; go 1.14.13; git fc664697)
Skipping Git submodules setup
Restoring cache
00:01
Version: 13.8.0
Git revision: 775dd39d
Git branch: 13-8-stable
GO version: go1.13.8
Built: 2021-01-20T13:32:55+0000
OS/Arch: windows/amd64
Checking cache for default...
Runtime platform arch=amd64 os=windows pid=14288 revision=775dd39d version=13.8.0
No URL provided, cache will not be downloaded from shared cache server. Instead a local version of cache will be extracted.
Successfully extracted cache
Executing "step_script" stage of the job script
$ dpl --provider=heroku --app=$HEROKU_APP_PRODUCTION --api-key=$HEROKU_API_KEY
dpl : The term 'dpl' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the
spelling of the name, or if a path was included, verify that the path is correct and try again.
At C:\Windows\TEMP\build_script930211489\script.ps1:221 char:1
+ dpl --provider=heroku --app=$HEROKU_APP_PRODUCTION --api-key=$HEROKU_ ...
+ ~~~
+ CategoryInfo : ObjectNotFound: (dpl:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Running after_script
00:01
Running after script...
$ echo "End CI"
End CI
Cleaning up file based variables
00:00
ERROR: Job failed: exit status 1
由于我是 CD 新手,因此我可能错过了其他重要的步骤。我确实在 gitlab 变量中添加了变量,所以我没有忘记这一点。谁能帮我?谢谢!