Files
ClearUrls/.gitlab-ci.yml
2020-09-10 00:44:54 +02:00

114 lines
2.5 KiB
YAML

image: debian:latest
before_script:
- export DEBIAN_FRONTEND= noninteractive
- apt-get update -y
- apt-get install -y zip unzip nodejs jsonlint
# This folder is cached between builds
# http://docs.gitlab.com/ce/ci/yaml/README.html#cache
cache:
paths:
- node_modules/
stages:
- install
- test
- build
- deploy
test rules:
stage: test
script:
- jsonlint-php data/data.min.json
only:
changes:
- data/data.min.json
hash rules:
stage: build
script:
- sha256sum data/data.min.json | awk '{print $1}' > rules.min.hash
- node build_tools/minifyDataJSON.js "data/data.min.json" "data.minify.json"
- sha256sum data.minify.json | awk '{print $1}' > rules.minify.hash
artifacts:
paths:
- rules.min.hash
- data.minify.json
- rules.minify.hash
only:
refs:
- merge_requests
- master
changes:
- data/data.min.json
install dependencies:
image: node:latest
stage: install
script:
- npm install
test:lint:
image: node:latest
stage: test
dependencies:
- install dependencies
script:
- npm run lint
test:vulnerabilities:
image: node:latest
stage: test
dependencies:
- install dependencies
script:
- npm run vuln-test
test:addon:
image: node:latest
stage: test
dependencies:
- install dependencies
script:
- npm test
coverage: /All files[^|]*\|[^|]*\s+([\d\.]+)/
artifacts:
when: always
paths:
- coverage
expire_in: 30 days
bundle addon:
stage: build
script:
- zip ClearUrls -r -FS clearurls.js browser-polyfill.js manifest.json img/* external_js/* html/* core_js/* css/* fonts/* _locales/*
only:
- master
artifacts:
paths:
- ClearUrls.zip
pages:
stage: deploy
script:
- mkdir public
- mkdir public/data
- mv GitLabPages/* public/
- cp img/clearurls.svg public/clearurls.svg
- cp data/data.min.json public/data/data.min.json
- sha256sum public/data/data.min.json | awk '{print $1}' > public/data/rules.min.hash
- node build_tools/minifyDataJSON.js "public/data/data.min.json" "public/data/data.minify.json"
- sha256sum public/data/data.minify.json | awk '{print $1}' > public/data/rules.minify.hash
artifacts:
paths:
- public
only:
refs:
- merge_requests
- master
changes:
- GitLabPages/*
- img/clearurls.svg
- data/data.min.json
- build_tools/minifyDataJSON.js