From 9bfadb37bf05ee73682d9340eeb084c8e9d2dd1d Mon Sep 17 00:00:00 2001 From: sinkcup Date: Sat, 18 Dec 2021 23:13:26 +0800 Subject: [PATCH 1/3] ci: run in coding.net sinkcup/coding-status#3 --- Jenkinsfile | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..130b953 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,41 @@ +pipeline { + agent { + docker { + reuseNode 'true' + registryUrl 'https://coding-public-docker.pkg.coding.net' + image 'public/docker/php:8.0' + args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /root/.cache:/root/.cache' + } + } + stages { + stage('检出') { + steps { + checkout([ + $class: 'GitSCM', + branches: [[name: GIT_BUILD_REF]], + userRemoteConfigs: [[ + url: GIT_REPO_URL, + credentialsId: CREDENTIALS_ID + ]] + ]) + } + } + stage('安装依赖') { + steps { + sh 'curl https://mirrors.cloud.tencent.com/composer/composer.phar -o /usr/local/bin/composer && chmod +x /usr/local/bin/composer' + sh 'composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/' + sh 'find /etc/apt/ -name "*.list" -print0 | xargs -0 sed -i -E "s/[a-z]+.debian.org/mirrors.cloud.tencent.com/g"' + sh 'apt-get update && apt-get install -y libzip-dev unzip zip zlib1g-dev' + sh 'docker-php-ext-install zip' + sh 'composer install --no-dev' + sh 'composer install' + } + } + stage('验收测试') { + steps { + sh 'XDEBUG_MODE=coverage ./vendor/bin/phpunit --log-junit junit.xml --coverage-clover coverage.xml --coverage-filter src/ tests/Acceptance' + junit 'junit.xml' + } + } + } +} From 2b288412291617836a7ce8014bd86a8175dffb59 Mon Sep 17 00:00:00 2001 From: sinkcup Date: Sat, 18 Dec 2021 23:20:35 +0800 Subject: [PATCH 2/3] perf: update base docker image sinkcup/coding-status#3 --- Jenkinsfile | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 130b953..41caa1b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -2,8 +2,7 @@ pipeline { agent { docker { reuseNode 'true' - registryUrl 'https://coding-public-docker.pkg.coding.net' - image 'public/docker/php:8.0' + image 'ecoding/php:8.0' args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /root/.cache:/root/.cache' } } @@ -22,12 +21,6 @@ pipeline { } stage('安装依赖') { steps { - sh 'curl https://mirrors.cloud.tencent.com/composer/composer.phar -o /usr/local/bin/composer && chmod +x /usr/local/bin/composer' - sh 'composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/' - sh 'find /etc/apt/ -name "*.list" -print0 | xargs -0 sed -i -E "s/[a-z]+.debian.org/mirrors.cloud.tencent.com/g"' - sh 'apt-get update && apt-get install -y libzip-dev unzip zip zlib1g-dev' - sh 'docker-php-ext-install zip' - sh 'composer install --no-dev' sh 'composer install' } } From 5f338bb1e3d95eeb98dd79e6ea0ec8c8cb81b460 Mon Sep 17 00:00:00 2001 From: sinkcup Date: Sat, 18 Dec 2021 23:26:14 +0800 Subject: [PATCH 3/3] ci: cache docker hub sinkcup/coding-status#3 --- Jenkinsfile | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index 41caa1b..dbc235a 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,12 +1,15 @@ pipeline { - agent { - docker { - reuseNode 'true' - image 'ecoding/php:8.0' - args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /root/.cache:/root/.cache' - } + agent any + environment{ + DOCKER_CACHE_EXISTS = fileExists '/root/.cache/docker/php-8.0.tar' } stages { + stage('加载缓存') { + when { expression { DOCKER_CACHE_EXISTS == 'true' } } + steps { + sh 'docker load -i /root/.cache/docker/php-8.0.tar' + } + } stage('检出') { steps { checkout([ @@ -19,15 +22,25 @@ pipeline { ]) } } - stage('安装依赖') { + stage('验收测试') { + agent { + docker { + reuseNode 'true' + image 'ecoding/php:8.0' + args '-v /var/run/docker.sock:/var/run/docker.sock -v /usr/bin/docker:/usr/bin/docker -v /root/.cache:/root/.cache' + } + } steps { sh 'composer install' + sh 'XDEBUG_MODE=coverage ./vendor/bin/phpunit --log-junit junit.xml --coverage-clover coverage.xml --coverage-filter src/ tests/Acceptance' + junit 'junit.xml' } } - stage('验收测试') { + stage('生成缓存') { + when { expression { DOCKER_CACHE_EXISTS == 'false' } } steps { - sh 'XDEBUG_MODE=coverage ./vendor/bin/phpunit --log-junit junit.xml --coverage-clover coverage.xml --coverage-filter src/ tests/Acceptance' - junit 'junit.xml' + sh 'mkdir -p /root/.cache/docker/' + sh 'docker save -o /root/.cache/docker/php-8.0.tar ecoding/php:8.0' } } }