mirror of https://github.com/goharbor/harbor.git
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 mkdir -p /etc/ui/ca/
|
||||||
- sudo mv ./tests/ca.crt /etc/ui/ca/
|
- sudo mv ./tests/ca.crt /etc/ui/ca/
|
||||||
- sudo mkdir -p /harbor
|
- sudo mkdir -p /harbor
|
||||||
- sudo mv ./VERSION /harbor/VERSION
|
- sudo mv ./VERSION /harbor/UIVERSION
|
||||||
- sudo service mysql stop
|
- sudo service mysql stop
|
||||||
- sudo make run_clarity_ut CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0
|
- sudo make run_clarity_ut CLARITYIMAGE=vmware/harbor-clarity-ui-builder:1.3.0
|
||||||
- cat ./src/ui_ng/lib/npm-ut-test-results
|
- cat ./src/ui_ng/lib/npm-ut-test-results
|
||||||
|
|
9
Makefile
9
Makefile
|
@ -85,9 +85,12 @@ BUILDBIN=false
|
||||||
MIGRATORFLAG=false
|
MIGRATORFLAG=false
|
||||||
|
|
||||||
# version prepare
|
# version prepare
|
||||||
|
# for docker image tag
|
||||||
VERSIONTAG=dev
|
VERSIONTAG=dev
|
||||||
|
# for harbor package name
|
||||||
|
PKGVERSIONTAG=dev
|
||||||
VERSIONFILEPATH=$(CURDIR)
|
VERSIONFILEPATH=$(CURDIR)
|
||||||
VERSIONFILENAME=VERSION
|
VERSIONFILENAME=UIVERSION
|
||||||
|
|
||||||
#versions
|
#versions
|
||||||
REGISTRYVERSION=v2.6.2
|
REGISTRYVERSION=v2.6.2
|
||||||
|
@ -205,13 +208,13 @@ DOCKERSAVE_PARA=$(DOCKERIMAGENAME_ADMINSERVER):$(VERSIONTAG) \
|
||||||
$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) \
|
$(DOCKERIMAGENAME_JOBSERVICE):$(VERSIONTAG) \
|
||||||
vmware/nginx-photon:$(NGINXVERSION) vmware/registry-photon:$(REGISTRYVERSION)-$(VERSIONTAG) \
|
vmware/nginx-photon:$(NGINXVERSION) vmware/registry-photon:$(REGISTRYVERSION)-$(VERSIONTAG) \
|
||||||
vmware/photon:$(PHOTONVERSION)
|
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)/common/templates $(HARBORPKG)/$(DOCKERIMGFILE).$(VERSIONTAG).tar.gz \
|
||||||
$(HARBORPKG)/prepare $(HARBORPKG)/NOTICE \
|
$(HARBORPKG)/prepare $(HARBORPKG)/NOTICE \
|
||||||
$(HARBORPKG)/LICENSE $(HARBORPKG)/install.sh \
|
$(HARBORPKG)/LICENSE $(HARBORPKG)/install.sh \
|
||||||
$(HARBORPKG)/harbor.cfg $(HARBORPKG)/$(DOCKERCOMPOSEFILENAME) \
|
$(HARBORPKG)/harbor.cfg $(HARBORPKG)/$(DOCKERCOMPOSEFILENAME) \
|
||||||
$(HARBORPKG)/ha
|
$(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)/common/templates $(HARBORPKG)/prepare \
|
||||||
$(HARBORPKG)/LICENSE $(HARBORPKG)/NOTICE \
|
$(HARBORPKG)/LICENSE $(HARBORPKG)/NOTICE \
|
||||||
$(HARBORPKG)/install.sh $(HARBORPKG)/$(DOCKERCOMPOSEFILENAME) \
|
$(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:
|
* Get offcial Golang image from docker hub:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
$ docker pull golang:1.7.3
|
$ docker pull golang:1.9.2
|
||||||
```
|
```
|
||||||
|
|
||||||
* Build, install and bring up Harbor without Notary:
|
* Build, install and bring up Harbor without Notary:
|
||||||
|
|
||||||
```sh
|
```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:
|
* Build, install and bring up Harbor with Notary:
|
||||||
|
|
||||||
```sh
|
```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:
|
* Build, install and bring up Harbor with Clair:
|
||||||
|
|
||||||
```sh
|
```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
|
#### 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
|
REGISTRYUSER | Remote registry server user name
|
||||||
REGISTRYPASSWORD | Remote registry server user password
|
REGISTRYPASSWORD | Remote registry server user password
|
||||||
REGISTRYPROJECTNAME| Project name on remote registry server
|
REGISTRYPROJECTNAME| Project name on remote registry server
|
||||||
|
VERSIONTAG | Harbor images tag, default: dev
|
||||||
|
PKGVERSIONTAG | Harbor online and offline version tag, default:dev
|
||||||
|
|
||||||
* Predefined targets:
|
* Predefined targets:
|
||||||
|
|
||||||
|
|
|
@ -12,7 +12,7 @@ COPY src/ui/static /go/bin/static
|
||||||
COPY src/favicon.ico /go/bin/favicon.ico
|
COPY src/favicon.ico /go/bin/favicon.ico
|
||||||
|
|
||||||
RUN mkdir /go/bin/harbor/
|
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
|
RUN chmod u+x /go/bin/harbor_ui
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
FROM vmware/photon:1.0
|
FROM vmware/photon:1.0
|
||||||
|
|
||||||
RUN tdnf distro-sync -y || echo \
|
RUN tdnf distro-sync -y \
|
||||||
&& tdnf erase vim -y \
|
&& tdnf erase vim -y \
|
||||||
&& tdnf install sudo -y >> /dev/null\
|
&& tdnf install sudo -y >> /dev/null\
|
||||||
&& tdnf clean all \
|
&& tdnf clean all \
|
||||||
|
@ -8,7 +8,7 @@ RUN tdnf distro-sync -y || echo \
|
||||||
&& mkdir /harbor/
|
&& mkdir /harbor/
|
||||||
|
|
||||||
HEALTHCHECK CMD curl -s -o /dev/null -w "%{http_code}" 127.0.0.1:8080/api/systeminfo|grep 200
|
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/views /harbor/views
|
||||||
COPY ./src/ui/static /harbor/static
|
COPY ./src/ui/static /harbor/static
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ type SystemInfoAPI struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
const defaultRootCert = "/etc/ui/ca/ca.crt"
|
const defaultRootCert = "/etc/ui/ca/ca.crt"
|
||||||
const harborVersionFile = "/harbor/VERSION"
|
const harborVersionFile = "/harbor/UIVERSION"
|
||||||
|
|
||||||
//SystemInfo models for system info.
|
//SystemInfo models for system info.
|
||||||
type SystemInfo struct {
|
type SystemInfo struct {
|
||||||
|
|
|
@ -13,11 +13,21 @@
|
||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
#
|
#
|
||||||
|
|
||||||
set -x
|
set -x
|
||||||
gsutil version -l
|
gsutil version -l
|
||||||
set +x
|
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 -------------------------------------------------
|
## --------------------------------------------- Init Env -------------------------------------------------
|
||||||
dpkg -l > package.list
|
dpkg -l > package.list
|
||||||
# Start Xvfb for Chrome headlesss
|
# 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_SERVER=$DRONE_SERVER
|
||||||
export DRONE_TOKEN=$DRONE_TOKEN
|
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
|
upload_build=false
|
||||||
nightly_run=false
|
nightly_run=false
|
||||||
upload_latest_build=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}'`
|
container_ip=`ip addr s eth0 |grep "inet "|awk '{print $2}' |awk -F "/" '{print $1}'`
|
||||||
echo $container_ip
|
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
|
# GS util
|
||||||
function uploader {
|
function uploader {
|
||||||
gsutil cp $1 gs://$2/$1
|
gsutil cp $1 gs://$2/$1
|
||||||
|
@ -84,29 +114,24 @@ function package_offline_installer {
|
||||||
}
|
}
|
||||||
|
|
||||||
## --------------------------------------------- Run Test Case ---------------------------------------------
|
## --------------------------------------------- Run Test Case ---------------------------------------------
|
||||||
if [[ $DRONE_REPO != "vmware/harbor" ]]; then
|
|
||||||
echo "Only run tests again Harbor Repo."
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "--------------------------------------------------"
|
echo "--------------------------------------------------"
|
||||||
echo "Running CI for $DRONE_BUILD_EVENT on $DRONE_REPO_BRANCH"
|
echo "Running CI for $DRONE_BUILD_EVENT on $DRONE_REPO_BRANCH"
|
||||||
echo "--------------------------------------------------"
|
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.
|
# 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_REPO_BRANCH == "master" || $DRONE_REPO_BRANCH == *"refs/tags"* || $DRONE_REPO_BRANCH == "release-"* ]]; then
|
||||||
if [[ $DRONE_BUILD_EVENT == "push" || $DRONE_BUILD_EVENT == "tag" ]]; then
|
if [[ $DRONE_BUILD_EVENT == "push" ]]; then
|
||||||
package_offline_installer
|
package_offline_installer
|
||||||
upload_latest_build=true
|
upload_latest_build=true
|
||||||
fi
|
fi
|
||||||
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
|
if (echo $buildinfo | grep -q "\[Specific CI="); then
|
||||||
buildtype=$(echo $buildinfo | grep "\[Specific CI=")
|
buildtype=$(echo $buildinfo | grep "\[Specific CI=")
|
||||||
|
@ -171,7 +196,7 @@ if [ $upload_latest_build == true ] && [ $upload_bundle_success == true ] && [ $
|
||||||
fi
|
fi
|
||||||
|
|
||||||
## ------------------------------------- Build & Publish NPM Package for VIC ------------------------------------
|
## ------------------------------------- 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."
|
echo "build & publish package harbor-ui-vic to npm repo."
|
||||||
./tools/ui_lib/build_ui_lib_4_vic.sh
|
./tools/ui_lib/build_ui_lib_4_vic.sh
|
||||||
fi
|
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
|
[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
|
Log To Console \nStart Docker Daemon
|
||||||
Start Docker Daemon Locally
|
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 ${rc}
|
||||||
Log ${output}
|
Log ${output}
|
||||||
Should Be Equal As Integers ${rc} 0
|
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
|
[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
|
Log To Console \nStart Docker Daemon
|
||||||
Start Docker Daemon Locally
|
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 ${rc}
|
||||||
Log ${output}
|
Log ${output}
|
||||||
Should Be Equal As Integers ${rc} 0
|
Should Be Equal As Integers ${rc} 0
|
||||||
|
|
Loading…
Reference in New Issue