開啓gitlab pages
vim /etc/gitlab/gitlab.rb
##! Define to enable GitLab Pages
pages_external_url "http://pages.gitlab.com/"
gitlab_pages['enable'] = true
gitlab_pages['inplace_chroot'] = true
gitlab-ctl reconfigure
更新gitlab.yml文件
containers:
- name: gitlab
image: gitlab/gitlab-ce:12.9.0-ce.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 30088
name: web
protocol: TCP
- containerPort: 22
name: agent
protocol: TCP
- containerPort: 80
name: page
protocol: TCP
開放80端口
kind: Service
apiVersion: v1
metadata:
labels:
k8s-app: gitlab
name: gitlab
namespace: devops
spec:
type: NodePort
ports:
- name: web
port: 30088
targetPort: 30088
nodePort: 30088
- name: slave
port: 22
targetPort: 22
nodePort: 30022
- name: page
port: 80
targetPort: 80
nodePort: 80
selector:
k8s-app: gitlab
完整的yaml參考github中。
FAQ:未開啓chroot
https://gitlab.com/gitlab-org/gitlab-pages/-/issues/129
"Failed to bind mount /var/opt/gitlab/gitlab-rails/shared/pages on /tmp/gitlab-pages-1524473513642136363/pages. operation not permitted
運行自動化測試
在這裏定義了兩個stage,
interface_test作業用於運行自動化測試,此時自動化測試已經配置好ant+jmeter集成所以直接運行ant命令即可。考慮到每個人安裝的jmeter環境目錄不一致所以可以通過-D選項指定jmeterhome。運行完成接口測試後,測試報告在項目當前目錄的result/htmlfile
中。在此將測試報告整理成製品存放。
pages作業用於將測試報告中的html文件通過pages功能展示。首先獲取interface_test作業的製品,然後將測試報告移動到public目錄中。最後將public目錄作爲製品收集,有效期30天。
jmeter安裝好了,之後需要將/usr/local/apache-jmeter-5.1.1/extras目錄中的ant-jmeter-1.1.1.jar 複製到ant安裝目錄下的lib中。
stages:
- tests
- deploy
interface_test:
stage: tests
tags:
- build
script:
- ant -Djmeter.home=/usr/local/buildtools/apache-jmeter-5.2.1
artifacts:
paths:
- result/htmlfile/
pages:
stage: deploy
dependencies:
- interface_test
script:
- mv result/htmlfile/ public/
artifacts:
paths:
- public
expire_in: 30 days
only:
- master
效果:
上下游項目觸發自動化測試
jobs/test.yml
.interfacetest:
stage: interface_test
trigger:
project: cidevops/cidevops-interfacetest-service
branch: master
strategy: depend
templates.yml
interfact_test:
stage: interface_test
extends: .interfacetest
一起學習呀: