mirror of
https://github.com/goharbor/harbor.git
synced 2024-12-24 17:47:46 +01:00
8857e89e40
Signed-off-by: Ziming Zhang <zziming@vmware.com>
326 lines
11 KiB
YAML
326 lines
11 KiB
YAML
name: CI
|
|
env:
|
|
POSTGRESQL_HOST: localhost
|
|
POSTGRESQL_PORT: 5432
|
|
POSTGRESQL_USR: postgres
|
|
POSTGRESQL_PWD: root123
|
|
POSTGRESQL_DATABASE: registry
|
|
DOCKER_COMPOSE_VERSION: 1.23.0
|
|
HARBOR_ADMIN: admin
|
|
HARBOR_ADMIN_PASSWD: Harbor12345
|
|
CORE_SECRET: tempString
|
|
KEY_PATH: "/data/secret/keys/secretkey"
|
|
REDIS_HOST: localhost
|
|
REG_VERSION: v2.7.1-patch-2819-2553
|
|
UI_BUILDER_VERSION: 1.6.0
|
|
|
|
on:
|
|
pull_request:
|
|
push:
|
|
paths-ignore:
|
|
- 'docs/**'
|
|
|
|
jobs:
|
|
UTTEST:
|
|
env:
|
|
UTTEST: true
|
|
runs-on:
|
|
#- self-hosted
|
|
- ubuntu-latest
|
|
steps:
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14.5
|
|
id: go
|
|
- name: setup Docker
|
|
uses: docker-practice/actions-setup-docker@0.0.1
|
|
with:
|
|
docker_version: 18.09
|
|
docker_channel: stable
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: src/github.com/goharbor/harbor
|
|
- name: setup env
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
go env
|
|
echo "::set-env name=GOPATH::$(go env GOPATH):$GITHUB_WORKSPACE"
|
|
echo "::add-path::$(go env GOPATH)/bin"
|
|
echo "::set-env name=TOKEN_PRIVATE_KEY_PATH::${GITHUB_WORKSPACE}/src/github.com/goharbor/harbor/tests/private_key.pem"
|
|
shell: bash
|
|
- name: before_install
|
|
run: |
|
|
set -x
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
env
|
|
#sudo apt install -y xvfb
|
|
#xvfb-run ls
|
|
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
|
chmod +x docker-compose
|
|
sudo mv docker-compose /usr/local/bin
|
|
IP=`hostname -I | awk '{print $1}'`
|
|
echo '{"insecure-registries" : ["'$IP':5000"]}' | sudo tee /etc/docker/daemon.json
|
|
echo "::set-env name=IP::$IP"
|
|
sudo cp ./tests/harbor_ca.crt /usr/local/share/ca-certificates/
|
|
sudo update-ca-certificates
|
|
sudo service docker restart
|
|
- name: install
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
env
|
|
df -h
|
|
bash ./tests/showtime.sh ./tests/ci/ut_install.sh
|
|
- name: script
|
|
run: |
|
|
echo IP: $IP
|
|
df -h
|
|
cd src/github.com/goharbor/harbor
|
|
bash ./tests/showtime.sh ./tests/ci/ut_run.sh $IP
|
|
df -h
|
|
- name: Codecov For BackEnd
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
file: ./src/github.com/goharbor/harbor/profile.cov
|
|
flags: unittests
|
|
|
|
APITEST_DB:
|
|
env:
|
|
APITEST_DB: true
|
|
runs-on:
|
|
#- self-hosted
|
|
- ubuntu-latest
|
|
steps:
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14.5
|
|
id: go
|
|
- name: setup Docker
|
|
uses: docker-practice/actions-setup-docker@0.0.1
|
|
with:
|
|
docker_version: 18.09
|
|
docker_channel: stable
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: src/github.com/goharbor/harbor
|
|
- name: setup env
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
go env
|
|
echo "::set-env name=CNAB_PATH::$(go env GOPATH)/src/github.com/docker"
|
|
echo "::set-env name=GITHUB_TOKEN::${{ secrets.GITHUB_TOKEN }}"
|
|
echo "::set-env name=GOPATH::$(go env GOPATH):$GITHUB_WORKSPACE"
|
|
echo "::add-path::$(go env GOPATH)/bin"
|
|
echo "::set-env name=TOKEN_PRIVATE_KEY_PATH::${GITHUB_WORKSPACE}/src/github.com/goharbor/harbor/tests/private_key.pem"
|
|
IP=`hostname -I | awk '{print $1}'`
|
|
echo "::set-env name=IP::$IP"
|
|
shell: bash
|
|
- name: before_install
|
|
run: |
|
|
set -x
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
env
|
|
df -h
|
|
#sudo apt install -y xvfb
|
|
#xvfb-run ls
|
|
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
|
chmod +x docker-compose
|
|
sudo mv docker-compose /usr/local/bin
|
|
echo '{"insecure-registries" : ["'$IP':5000"]}' | sudo tee /etc/docker/daemon.json
|
|
sudo cp ./tests/harbor_ca.crt /usr/local/share/ca-certificates/
|
|
sudo update-ca-certificates
|
|
sudo service docker restart
|
|
wget https://get.helm.sh/helm-v2.14.1-linux-386.tar.gz && tar zxvf helm-v2.14.1-linux-386.tar.gz
|
|
sudo mv linux-386/helm /usr/local/bin/helm2
|
|
helm2 init --client-only
|
|
helm2 plugin list | grep push || helm2 plugin install https://github.com/chartmuseum/helm-push
|
|
wget https://get.helm.sh/helm-v3.1.1-linux-386.tar.gz && tar zxvf helm-v3.1.1-linux-386.tar.gz
|
|
sudo mv linux-386/helm /usr/local/bin/helm3
|
|
helm3 plugin list | grep push || helm3 plugin install https://github.com/chartmuseum/helm-push
|
|
rm -rf $CNAB_PATH;mkdir -p $CNAB_PATH && cd $CNAB_PATH && git clone https://github.com/cnabio/cnab-to-oci.git
|
|
cd cnab-to-oci && git checkout v0.3.0-beta4
|
|
go list
|
|
make build
|
|
sudo mv bin/cnab-to-oci /usr/local/bin
|
|
curl -LO https://github.com/deislabs/oras/releases/download/v0.8.1/oras_0.8.1_linux_amd64.tar.gz
|
|
mkdir -p oras-install/
|
|
tar -zxf oras_0.8.1_*.tar.gz -C oras-install/
|
|
sudo mv oras-install/oras /usr/local/bin/
|
|
sudo apt-get update && sudo apt-get install -y \
|
|
build-essential \
|
|
uuid-dev \
|
|
libgpgme-dev \
|
|
squashfs-tools \
|
|
libseccomp-dev \
|
|
pkg-config \
|
|
cryptsetup-bin
|
|
export VERSION=3.5.3 && \
|
|
wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-${VERSION}.tar.gz && \
|
|
tar -xzf singularity-${VERSION}.tar.gz && \
|
|
cd singularity
|
|
./mconfig && \
|
|
make -C builddir && \
|
|
sudo make -C builddir install
|
|
- name: install
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
env
|
|
df -h
|
|
docker system prune -a -f
|
|
bash ./tests/showtime.sh ./tests/ci/api_common_install.sh $IP DB
|
|
- name: script
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
echo IP: $IP
|
|
df -h
|
|
bash ./tests/showtime.sh ./tests/ci/api_run.sh DB $IP
|
|
df -h
|
|
|
|
APITEST_LDAP:
|
|
env:
|
|
APITEST_LDAP: true
|
|
runs-on:
|
|
#- self-hosted
|
|
- ubuntu-latest
|
|
steps:
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14.5
|
|
id: go
|
|
- name: setup Docker
|
|
uses: docker-practice/actions-setup-docker@0.0.1
|
|
with:
|
|
docker_version: 18.09
|
|
docker_channel: stable
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: src/github.com/goharbor/harbor
|
|
- name: setup env
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
go env
|
|
echo "::set-env name=GOPATH::$(go env GOPATH):$GITHUB_WORKSPACE"
|
|
echo "::add-path::$(go env GOPATH)/bin"
|
|
echo "::set-env name=TOKEN_PRIVATE_KEY_PATH::${GITHUB_WORKSPACE}/src/github.com/goharbor/harbor/tests/private_key.pem"
|
|
shell: bash
|
|
- name: before_install
|
|
run: |
|
|
set -x
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
env
|
|
df -h
|
|
#sudo apt install -y xvfb
|
|
#xvfb-run ls
|
|
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
|
chmod +x docker-compose
|
|
sudo mv docker-compose /usr/local/bin
|
|
IP=`hostname -I | awk '{print $1}'`
|
|
echo '{"insecure-registries" : ["'$IP':5000"]}' | sudo tee /etc/docker/daemon.json
|
|
echo "::set-env name=IP::$IP"
|
|
sudo cp ./tests/harbor_ca.crt /usr/local/share/ca-certificates/
|
|
sudo update-ca-certificates
|
|
sudo service docker restart
|
|
- name: install
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
env
|
|
df -h
|
|
bash ./tests/showtime.sh ./tests/ci/api_common_install.sh $IP LDAP
|
|
- name: script
|
|
run: |
|
|
echo IP: $IP
|
|
df -h
|
|
cd src/github.com/goharbor/harbor
|
|
bash ./tests/showtime.sh ./tests/ci/api_run.sh LDAP $IP
|
|
df -h
|
|
|
|
OFFLINE:
|
|
env:
|
|
OFFLINE: true
|
|
runs-on:
|
|
#- self-hosted
|
|
- ubuntu-latest
|
|
steps:
|
|
- name: Set up Go 1.14
|
|
uses: actions/setup-go@v1
|
|
with:
|
|
go-version: 1.14.5
|
|
id: go
|
|
- name: setup Docker
|
|
uses: docker-practice/actions-setup-docker@0.0.1
|
|
with:
|
|
docker_version: 18.09
|
|
docker_channel: stable
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: src/github.com/goharbor/harbor
|
|
- name: setup env
|
|
run: |
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
docker version
|
|
go env
|
|
echo "::set-env name=GOPATH::$(go env GOPATH):$GITHUB_WORKSPACE"
|
|
echo "::add-path::$(go env GOPATH)/bin"
|
|
echo "::set-env name=TOKEN_PRIVATE_KEY_PATH::${GITHUB_WORKSPACE}/src/github.com/goharbor/harbor/tests/private_key.pem"
|
|
shell: bash
|
|
- name: before_install
|
|
run: |
|
|
set -x
|
|
cd src/github.com/goharbor/harbor
|
|
pwd
|
|
env
|
|
df -h
|
|
#sudo apt install -y xvfb
|
|
#xvfb-run ls
|
|
curl -L https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-`uname -s`-`uname -m` > docker-compose
|
|
chmod +x docker-compose
|
|
sudo mv docker-compose /usr/local/bin
|
|
IP=`hostname -I | awk '{print $1}'`
|
|
echo '{"insecure-registries" : ["'$IP':5000"]}' | sudo tee /etc/docker/daemon.json
|
|
echo "::set-env name=IP::$IP"
|
|
sudo cp ./tests/harbor_ca.crt /usr/local/share/ca-certificates/
|
|
sudo update-ca-certificates
|
|
sudo service docker restart
|
|
- name: script
|
|
run: |
|
|
echo IP: $IP
|
|
df -h
|
|
cd src/github.com/goharbor/harbor
|
|
bash ./tests/showtime.sh ./tests/ci/distro_installer.sh
|
|
df -h
|
|
|
|
UI_UT:
|
|
env:
|
|
UI_UT: true
|
|
runs-on:
|
|
#- self-hosted
|
|
- ubuntu-latest
|
|
steps:
|
|
- uses: actions/setup-node@v1
|
|
with:
|
|
node-version: '10.16.2'
|
|
- uses: actions/checkout@v2
|
|
with:
|
|
path: src/github.com/goharbor/harbor
|
|
- name: script
|
|
run: |
|
|
echo IP: $IP
|
|
df -h
|
|
cd src/github.com/goharbor/harbor
|
|
bash ./tests/showtime.sh ./tests/ci/ui_ut_run.sh
|
|
df -h
|
|
- name: Codecov For UI
|
|
uses: codecov/codecov-action@v1
|
|
with:
|
|
file: ./src/github.com/goharbor/harbor/src/portal/coverage/lcov.info
|
|
flags: unittests
|