mirror of
https://github.com/goharbor/harbor
synced 2025-04-10 06:19:21 +00:00
Revise harbor build version (#4445)
This commit is contained in:
parent
8aa63b661c
commit
5edbd00318
|
@ -77,7 +77,7 @@ script:
|
|||
- sudo mkdir -p /etc/ui/ca/
|
||||
- sudo mv ./tests/ca.crt /etc/ui/ca/
|
||||
- sudo mkdir -p /harbor
|
||||
- sudo mv ./VERSION /harbor/VERSION
|
||||
- sudo mv ./VERSION /harbor/UIVERSION
|
||||
- sudo service mysql stop
|
||||
- sudo make run_clarity_ut CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0
|
||||
- cat ./src/ui_ng/lib/npm-ut-test-results
|
||||
|
|
9
Makefile
9
Makefile
|
@ -85,9 +85,12 @@ BUILDBIN=false
|
|||
MIGRATORFLAG=false
|
||||
|
||||
# version prepare
|
||||
# for docker image tag
|
||||
VERSIONTAG=dev
|
||||
# for harbor package name
|
||||
PKGVERSIONTAG=dev
|
||||
VERSIONFILEPATH=$(CURDIR)
|
||||
VERSIONFILENAME=VERSION
|
||||
VERSIONFILENAME=UIVERSION
|
||||
|
||||
#versions
|
||||
REGISTRYVERSION=v2.6.2
|
||||
|
@ -205,13 +208,13 @@ DOCKERSAVE_PARA=$(DOCKERIMAGENAME_ADMINSERVER):$(VERSIONTAG) \
|
|||
$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) \
|
||||
vmware/nginx-photon:$(NGINXVERSION) vmware/registry-photon:$(REGISTRYVERSION)-$(VERSIONTAG) \
|
||||
vmware/photon:$(PHOTONVERSION)
|
||||
PACKAGE_OFFLINE_PARA=-zcvf harbor-offline-installer-$(VERSIONTAG).tgz \
|
||||
PACKAGE_OFFLINE_PARA=-zcvf harbor-offline-installer-$(PKGVERSIONTAG).tgz \
|
||||
$(HARBORPKG)/common/templates $(HARBORPKG)/$(DOCKERIMGFILE).$(VERSIONTAG).tar.gz \
|
||||
$(HARBORPKG)/prepare $(HARBORPKG)/NOTICE \
|
||||
$(HARBORPKG)/LICENSE $(HARBORPKG)/install.sh \
|
||||
$(HARBORPKG)/harbor.cfg $(HARBORPKG)/$(DOCKERCOMPOSEFILENAME) \
|
||||
$(HARBORPKG)/ha
|
||||
PACKAGE_ONLINE_PARA=-zcvf harbor-online-installer-$(VERSIONTAG).tgz \
|
||||
PACKAGE_ONLINE_PARA=-zcvf harbor-online-installer-$(PKGVERSIONTAG).tgz \
|
||||
$(HARBORPKG)/common/templates $(HARBORPKG)/prepare \
|
||||
$(HARBORPKG)/LICENSE $(HARBORPKG)/NOTICE \
|
||||
$(HARBORPKG)/install.sh $(HARBORPKG)/$(DOCKERCOMPOSEFILENAME) \
|
||||
|
|
|
@ -44,25 +44,25 @@ You can compile the code by one of the three approaches:
|
|||
* Get offcial Golang image from docker hub:
|
||||
|
||||
```sh
|
||||
$ docker pull golang:1.7.3
|
||||
$ docker pull golang:1.9.2
|
||||
```
|
||||
|
||||
* Build, install and bring up Harbor without Notary:
|
||||
|
||||
```sh
|
||||
$ make install GOBUILDIMAGE=golang:1.7.3 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.2.7
|
||||
$ make install GOBUILDIMAGE=golang:1.9.2 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0
|
||||
```
|
||||
|
||||
* Build, install and bring up Harbor with Notary:
|
||||
|
||||
```sh
|
||||
$ make install GOBUILDIMAGE=golang:1.7.3 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.2.7 NOTARYFLAG=true
|
||||
$ make install GOBUILDIMAGE=golang:1.9.2 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0 NOTARYFLAG=true
|
||||
```
|
||||
|
||||
* Build, install and bring up Harbor with Clair:
|
||||
|
||||
```sh
|
||||
$ make install GOBUILDIMAGE=golang:1.7.3 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.2.7 CLAIRFLAG=true
|
||||
$ make install GOBUILDIMAGE=golang:1.9.2 COMPILETAG=compile_golangimage CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0 CLAIRFLAG=true
|
||||
```
|
||||
|
||||
#### II. Compile code with your own Golang environment, then build Harbor
|
||||
|
@ -118,6 +118,8 @@ REGISTRYSERVER | Remote registry server IP address
|
|||
REGISTRYUSER | Remote registry server user name
|
||||
REGISTRYPASSWORD | Remote registry server user password
|
||||
REGISTRYPROJECTNAME| Project name on remote registry server
|
||||
VERSIONTAG | Harbor images tag, default: dev
|
||||
PKGVERSIONTAG | Harbor online and offline version tag, default:dev
|
||||
|
||||
* Predefined targets:
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ COPY src/ui/static /go/bin/static
|
|||
COPY src/favicon.ico /go/bin/favicon.ico
|
||||
|
||||
RUN mkdir /go/bin/harbor/
|
||||
COPY VERSION /go/bin/harbor/VERSION
|
||||
COPY VERSION /go/bin/harbor/UIVERSION
|
||||
|
||||
RUN chmod u+x /go/bin/harbor_ui
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
FROM vmware/photon:1.0
|
||||
|
||||
RUN tdnf distro-sync -y || echo \
|
||||
RUN tdnf distro-sync -y \
|
||||
&& tdnf erase vim -y \
|
||||
&& tdnf install sudo -y >> /dev/null\
|
||||
&& tdnf clean all \
|
||||
|
@ -8,7 +8,7 @@ RUN tdnf distro-sync -y || echo \
|
|||
&& mkdir /harbor/
|
||||
|
||||
HEALTHCHECK CMD curl -s -o /dev/null -w "%{http_code}" 127.0.0.1:8080/api/systeminfo|grep 200
|
||||
COPY ./make/dev/ui/harbor_ui ./src/favicon.ico ./make/photon/ui/start.sh ./VERSION /harbor/
|
||||
COPY ./make/dev/ui/harbor_ui ./src/favicon.ico ./make/photon/ui/start.sh ./UIVERSION /harbor/
|
||||
COPY ./src/ui/views /harbor/views
|
||||
COPY ./src/ui/static /harbor/static
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ type SystemInfoAPI struct {
|
|||
}
|
||||
|
||||
const defaultRootCert = "/etc/ui/ca/ca.crt"
|
||||
const harborVersionFile = "/harbor/VERSION"
|
||||
const harborVersionFile = "/harbor/UIVERSION"
|
||||
|
||||
//SystemInfo models for system info.
|
||||
type SystemInfo struct {
|
||||
|
|
|
@ -13,11 +13,21 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
set -x
|
||||
gsutil version -l
|
||||
set +x
|
||||
|
||||
## -------------------------------------------- Pre-condition --------------------------------------------
|
||||
if [[ $DRONE_REPO != "vmware/harbor" ]]; then
|
||||
echo "Only run tests again Harbor Repo."
|
||||
exit 1
|
||||
fi
|
||||
# It won't package an new harbor build against tag, just pick up a build which passed CI and push to release.
|
||||
if [[ $DRONE_BUILD_EVENT == "tag" ]]; then
|
||||
echo "We do nothing against 'tag'."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
## --------------------------------------------- Init Env -------------------------------------------------
|
||||
dpkg -l > package.list
|
||||
# Start Xvfb for Chrome headlesss
|
||||
|
@ -25,16 +35,7 @@ Xvfb -ac :99 -screen 0 1280x1024x16 & export DISPLAY=:99
|
|||
|
||||
export DRONE_SERVER=$DRONE_SERVER
|
||||
export DRONE_TOKEN=$DRONE_TOKEN
|
||||
buildinfo=$(drone build info vmware/harbor $DRONE_BUILD_NUMBER)
|
||||
echo $buildinfo
|
||||
git_commit=$(git rev-parse --short=8 HEAD)
|
||||
if [[ $DRONE_BUILD_EVENT == "tag" ]]; then
|
||||
build_number=$(git describe --abbrev=0 --tags)
|
||||
else
|
||||
build_number=$DRONE_BUILD_NUMBER-$git_commit
|
||||
fi
|
||||
echo build_number
|
||||
export HARBOR_BUILD_NUMBER=$build_number
|
||||
|
||||
upload_build=false
|
||||
nightly_run=false
|
||||
upload_latest_build=false
|
||||
|
@ -68,6 +69,35 @@ echo "default_project_id = $GS_PROJECT_ID" >> $botofile
|
|||
container_ip=`ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'`
|
||||
echo $container_ip
|
||||
|
||||
## --------------------------------------------- Init Version -----------------------------------------------
|
||||
buildinfo=$(drone build info vmware/harbor $DRONE_BUILD_NUMBER)
|
||||
echo $buildinfo
|
||||
git_commit=$(git rev-parse --short=8 HEAD)
|
||||
|
||||
# the target release version is the version of next release(RC or GA). It needs to be updated on creating new release branch.
|
||||
target_release_version=$(cat ./VERSION)
|
||||
# the harbor ui version will be shown in the about dialog.
|
||||
Harbor_UI_Version=$target_release_version-$git_commit
|
||||
# the harbor package version is for both online and offline installer.
|
||||
Harbor_Package_Version=$target_release_version-$DRONE_BUILD_NUMBER
|
||||
# the harbor assets version is for tag of harbor images:
|
||||
# 1, On master branch, it's same as package version.
|
||||
# 2, On release branch(others), it would set to the target realese version so that we can rename the latest passed CI build to publish.
|
||||
if [[ $DRONE_REPO_BRANCH == "master" ]]; then
|
||||
Harbor_Assets_Version=$target_release_version-$DRONE_BUILD_NUMBER
|
||||
else
|
||||
Harbor_Assets_Version=$target_release_version
|
||||
fi
|
||||
export Harbor_Assets_Version=$Harbor_Assets_Version
|
||||
# the env is for online and offline package.
|
||||
export Harbor_Package_Version=$Harbor_Package_Version
|
||||
|
||||
echo "--------------------------------------------------"
|
||||
echo "Harbor UI version: $Harbor_UI_Version"
|
||||
echo "Harbor Package version: $Harbor_Package_Version"
|
||||
echo "Harbor Assets version: $Harbor_Assets_Version"
|
||||
echo "--------------------------------------------------"
|
||||
|
||||
# GS util
|
||||
function uploader {
|
||||
gsutil cp $1 gs://$2/$1
|
||||
|
@ -84,29 +114,24 @@ function package_offline_installer {
|
|||
}
|
||||
|
||||
## --------------------------------------------- Run Test Case ---------------------------------------------
|
||||
if [[ $DRONE_REPO != "vmware/harbor" ]]; then
|
||||
echo "Only run tests again Harbor Repo."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "--------------------------------------------------"
|
||||
echo "Running CI for $DRONE_BUILD_EVENT on $DRONE_REPO_BRANCH"
|
||||
echo "--------------------------------------------------"
|
||||
|
||||
##
|
||||
# Any merge code or tag on branch master, release-* or pks-* will trigger package offline installer.
|
||||
# Any merge code(PUSH) on branch master, release-* will trigger package offline installer.
|
||||
#
|
||||
# Put code here is because that it needs clean code to build installer.
|
||||
##
|
||||
if [[ $DRONE_REPO_BRANCH == "master" || $DRONE_REPO_BRANCH == *"refs/tags"* || $DRONE_REPO_BRANCH == "release-"* || $DRONE_REPO_BRANCH == "pks-"* ]]; then
|
||||
if [[ $DRONE_BUILD_EVENT == "push" || $DRONE_BUILD_EVENT == "tag" ]]; then
|
||||
if [[ $DRONE_REPO_BRANCH == "master" || $DRONE_REPO_BRANCH == *"refs/tags"* || $DRONE_REPO_BRANCH == "release-"* ]]; then
|
||||
if [[ $DRONE_BUILD_EVENT == "push" ]]; then
|
||||
package_offline_installer
|
||||
upload_latest_build=true
|
||||
fi
|
||||
fi
|
||||
|
||||
##
|
||||
# Any Event(PR or merge code) on any branch will trigger test run.
|
||||
# Any Event(pull_request or push) on any branch will trigger test run.
|
||||
##
|
||||
if (echo $buildinfo | grep -q "\[Specific CI="); then
|
||||
buildtype=$(echo $buildinfo | grep "\[Specific CI=")
|
||||
|
@ -171,7 +196,7 @@ if [ $upload_latest_build == true ] && [ $upload_bundle_success == true ] && [ $
|
|||
fi
|
||||
|
||||
## ------------------------------------- Build & Publish NPM Package for VIC ------------------------------------
|
||||
if [ $publish_npm == true ] && [ $rc -eq 0 ] && [[ $DRONE_BUILD_EVENT == "push" || $DRONE_BUILD_EVENT == "tag" ]]; then
|
||||
if [ $publish_npm == true ] && [ $rc -eq 0 ] && [[ $DRONE_BUILD_EVENT == "push" ]]; then
|
||||
echo "build & publish package harbor-ui-vic to npm repo."
|
||||
./tools/ui_lib/build_ui_lib_4_vic.sh
|
||||
fi
|
||||
|
|
|
@ -57,7 +57,7 @@ Package Harbor Offline
|
|||
[Arguments] ${golang_image}=golang:${GOLANG_VERSION} ${clarity_image}=vmware/harbor-clarity-ui-builder:${CLAIR_BUILDER} ${with_notary}=true ${with_clair}=true ${with_migrator}=true
|
||||
Log To Console \nStart Docker Daemon
|
||||
Start Docker Daemon Locally
|
||||
${rc} ${output}= Run And Return Rc And Output make package_offline VERSIONTAG=%{HARBOR_BUILD_NUMBER} GOBUILDIMAGE=${golang_image} COMPILETAG=compile_golangimage CLARITYIMAGE=${clarity_image} NOTARYFLAG=${with_notary} CLAIRFLAG=${with_clair} MIGRATORFLAG=${with_migrator} HTTPPROXY=
|
||||
${rc} ${output}= Run And Return Rc And Output make package_offline VERSIONTAG=%{Harbor_Assets_Version} PKGVERSIONTAG=%{Harbor_Package_Version} GOBUILDIMAGE=${golang_image} COMPILETAG=compile_golangimage CLARITYIMAGE=${clarity_image} NOTARYFLAG=${with_notary} CLAIRFLAG=${with_clair} MIGRATORFLAG=${with_migrator} HTTPPROXY=
|
||||
Log ${rc}
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
|
@ -66,7 +66,7 @@ Package Harbor Online
|
|||
[Arguments] ${golang_image}=golang:${GOLANG_VERSION} ${clarity_image}=vmware/harbor-clarity-ui-builder:${CLAIR_BUILDER} ${with_notary}=true ${with_clair}=true ${with_migrator}=true
|
||||
Log To Console \nStart Docker Daemon
|
||||
Start Docker Daemon Locally
|
||||
${rc} ${output}= Run And Return Rc And Output make package_online VERSIONTAG=%{HARBOR_BUILD_NUMBER} GOBUILDIMAGE=${golang_image} COMPILETAG=compile_golangimage CLARITYIMAGE=${clarity_image} NOTARYFLAG=${with_notary} CLAIRFLAG=${with_clair} MIGRATORFLAG=${with_migrator} HTTPPROXY=
|
||||
${rc} ${output}= Run And Return Rc And Output make package_online VERSIONTAG=%{Harbor_Assets_Version} PKGVERSIONTAG=%{Harbor_Package_Version} GOBUILDIMAGE=${golang_image} COMPILETAG=compile_golangimage CLARITYIMAGE=${clarity_image} NOTARYFLAG=${with_notary} CLAIRFLAG=${with_clair} MIGRATORFLAG=${with_migrator} HTTPPROXY=
|
||||
Log ${rc}
|
||||
Log ${output}
|
||||
Should Be Equal As Integers ${rc} 0
|
||||
|
|
Loading…
Reference in New Issue
Block a user