gitlab 发布composer包
制作composer包
请先自行制作composer包
代码上传到gitlab
将composer代码上传到gitlab
我这边是采用ci/cd的方式进行composer提交的
.gitlab-ci.yml
publish:
tags:
- public
image: curlimages/curl:latest
stage: build
variables:
URL: "$CI_SERVER_PROTOCOL://$CI_SERVER_HOST:$CI_SERVER_PORT/api/v4/projects/$CI_PROJECT_ID/packages/composer?job_token=$CI_JOB_TOKEN"
script:
- version=$([[ -z "$CI_COMMIT_TAG" ]] && echo "branch=$CI_COMMIT_REF_NAME" || echo "tag=$CI_COMMIT_TAG")
- insecure=$([ "$CI_SERVER_PROTOCOL" = "http" ] && echo "--insecure" || echo "")
- response=$(curl -s -w "\n%{http_code}" $insecure --data $version $URL)
- code=$(echo "$response" | tail -n 1)
- body=$(echo "$response" | head -n 1)
# Output state information
- if [ $code -eq 201 ]; then
echo "Package created - Code $code - $body";
else
echo "Could not create package - Code $code - $body";
exit 1;
fi
由于目前是master分支,所以版本会变成deve-master
如果想发布其他版本,则新建tag,格式为v+0.0.0,例如v1.0.0,ci会就自动发布一个v1.0.0的包了
在本地项目安装
准备认证文件
<personal_access_token> 你的access_toekn
生成personal_access_token
在gitlab的对应的项目里找到访问令牌,生成一个只有read_api权限的token即可
你的本地项目里面
composer config gitlab-token.<DOMAIN-NAME> <personal_access_token>
在你的composer.json 同目录下会生成auth.json,请不要上传该文件到git
config gitlab-domains <DOMAIN-NAME>
//以下代码是在gitlab对应的包里自动生成
composer config repositories.gitlab.xxx.com/29 '{"type": "composer", "url": "https://gitlab.xxx.com/api/v4/group/29/-/packages/composer/packages.json"}'
composer req yuncaiinc/icanalysis:dev-master
如果在安装提示你的composer url 是404,有可能是由于认证不成功导致,对的,你没有看错,认证错误是返回404,当初被坑了很久
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。
评论已关闭