summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorceldem <celdem@gitlab.com>2019-12-13 17:33:41 +0000
committerceldem <celdem@gitlab.com>2019-12-13 17:33:41 +0000
commit8054e28e99a304ef36525a51c8a822554f51feda (patch)
tree903f74ec89ca542da6dd47ca341803fb5e588f43
parentfcd3ec047d42a3c5cd44c5c4ce1dd525fe0f52fc (diff)
Automate updating-spdx-licensesupdate-spdx-licenses
-rw-r--r--.gitlab-ci.yml389
1 files changed, 25 insertions, 364 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 6c1c90f..af341f0 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,368 +5,29 @@ variables:
MAJOR: 1
TMP_IMAGE: $CI_REGISTRY_IMAGE/tmp:$CI_COMMIT_SHA
-include:
- - template: Container-Scanning.gitlab-ci.yml
- - template: Jobs/Code-Quality.gitlab-ci.yml
-
-services:
- - docker:stable-dind
-
stages:
- - build
- - test
- - tag
- - release
-
-build commit:
- image: docker:stable
- stage: build
- script:
- - docker info
- - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - docker build -t $TMP_IMAGE .
- - docker push $TMP_IMAGE
-
-container_scanning:
- variables:
- CI_APPLICATION_REPOSITORY: $CI_REGISTRY_IMAGE/tmp # only predefined variables are parameter-expanded (no $TMP_IMAGE)
-
-.QA:
- image: docker:stable
- stage: test
- variables:
- LM_PYTHON_VERSION: 3
- LM_REPORT_VERSION: 1
- script:
- - docker info
- - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - docker pull $TMP_IMAGE
- - mkdir results
- - IMAGE_NAME=$TMP_IMAGE ./bin/test
- artifacts:
- paths:
- - results/
- when: always
-
-unit:
- stage: test
- script:
- - gem install bundler -v '~> 2.0'
- - bundle install
- - bundle exec rspec
-
-QA:php-composer:
- extends: .QA
- variables:
- QA_PROJECT: php-composer
-
-QA:php-composer-v1-1:
- extends: QA:php-composer
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: php-composer-v1.1
-
-QA:php-composer-v2:
- extends: QA:php-composer
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: php-composer-v2
-
-QA:java-maven:
- extends: .QA
- variables:
- QA_PROJECT: java-maven
- QA_REF: 831c7a04
-
-QA:java-maven-v1-1:
- extends: QA:java-maven
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: java-maven-v1.1
-
-QA:java-maven-v2:
- extends: QA:java-maven
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: java-maven-v2
-
-QA:python-pip:
- extends: .QA
- variables:
- LM_PYTHON_VERSION: 2
- QA_PROJECT: python-pip
- QA_REF: 04dce91b
-
-QA:python-pip-v1-1:
- extends: QA:python-pip
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: python-pip-v1.1
-
-QA:python-pip-v2:
- extends: QA:python-pip
- variables:
- LM_REPORT_VERSION: '2.0'
- QA_RESULTS: python-pip-v2
-
-QA:python3-pip:
- extends: .QA
- variables:
- QA_RESULTS: python3-pip-v1
- QA_PROJECT: python-pip
- QA_REF: 48e250a1
-
-QA:python3-pip-v1-1:
- extends: QA:python3-pip
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: python3-pip-v1.1
-
-QA:python3-pip-v2:
- extends: QA:python3-pip
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: python3-pip-v2
-
-QA:ruby-bundler:
- extends: .QA
- variables:
- QA_PROJECT: ruby-bundler
- QA_REF: master
-
-QA:ruby-bundler-v1-1:
- extends: QA:ruby-bundler
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: ruby-bundler-v1.1
-
-QA:ruby-bundler-v2:
- extends: QA:ruby-bundler
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: ruby-bundler-v2
-
-QA:go:
- extends: .QA
- variables:
- QA_PROJECT: go-modules
- QA_REF: master
-
-QA:go-v1-1:
- extends: QA:go
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: go-modules-v1.1
-
-QA:go-v2:
- extends: QA:go
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: go-modules-v2
-
-QA:js:
- extends: .QA
- variables:
- QA_PROJECT: js-yarn
- QA_REF: master
-
-QA:js-v1-1:
- extends: QA:js
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: js-yarn-v1.1
-
-QA:js-v2:
- extends: QA:js
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: js-yarn-v2
-
-QA:js-npm:
- extends: .QA
- variables:
- QA_PROJECT: js-npm
- QA_REF: master
-
-QA:js-npm-v1-1:
- extends: QA:js-npm
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: js-npm-v1.1
-
-QA:js-npm-v2:
- extends: QA:js-npm
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: js-npm-v2
-
-QA:dotnet:
- extends: .QA
- variables:
- QA_PROJECT: csharp-nuget-dotnetcore
- QA_REF: master
-
-QA:dotnet-v1-1:
- extends: QA:dotnet
- variables:
- LM_REPORT_VERSION: '1.1'
- QA_RESULTS: csharp-nuget-dotnetcore-v1.1
-
-QA:dotnet-v2:
- extends: QA:dotnet
- variables:
- LM_REPORT_VERSION: 2
- QA_RESULTS: csharp-nuget-dotnetcore-v2
-
-.docker_tag:
- image: docker:stable
- stage: tag
- script:
- - docker info
- - docker login -u gitlab-ci-token -p $CI_JOB_TOKEN $CI_REGISTRY
- - export SOURCE_IMAGE=$TMP_IMAGE
- - export TARGET_IMAGE=$CI_REGISTRY_IMAGE:${IMAGE_TAG:-$CI_JOB_NAME}
- - |
- if [ -z "$DOTENV" ]; then
- docker pull $SOURCE_IMAGE
- docker tag $SOURCE_IMAGE $TARGET_IMAGE
- else
- ./bin/docker-dotenv
- fi
- - docker push $TARGET_IMAGE
-
-branch:
- extends: .docker_tag
- variables:
- IMAGE_TAG: $CI_COMMIT_REF_SLUG
- only:
- - branches
- except:
- - master
-
-edge:
- extends: .docker_tag
- variables:
- IMAGE_TAG: edge
- only:
- - master
-
-version:
- extends: .docker_tag
- before_script:
- - export IMAGE_TAG=${CI_COMMIT_TAG/v/}
- - echo "Checking that $CI_COMMIT_TAG is last in the changelog"
- - test "$(grep '^## v' CHANGELOG.md |head -n 1)" = "## $CI_COMMIT_TAG"
- only:
- - tags
- when: manual
- allow_failure: false
-
-.release:
- extends: .docker_tag
- stage: release
- only:
- - tags
-
-major:
- extends: .release
- variables:
- IMAGE_TAG: $MAJOR
-
-latest:
- extends: .release
-
-12-6-stable:
- extends: .release
- variables:
- DOTENV: ".env.12-6-stable"
-
-12-5-stable:
- extends: .release
- variables:
- DOTENV: ".env.12-5-stable"
-
-12-4-stable:
- extends: .release
- variables:
- DOTENV: ".env.12-4-stable"
-
-12-3-stable:
- extends: .release
- variables:
- DOTENV: ".env.12-3-stable"
-
-12-2-stable:
- extends: .release
- variables:
- DOTENV: ".env.12-2-stable"
-
-12-1-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-12-0-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-11-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-10-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-9-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-8-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-7-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-6-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-5-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-4-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-3-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-2-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-1-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
-
-11-0-stable:
- extends: .release
- variables:
- DOTENV: ".env.legacy"
+ - update
+
+update-spdx:
+ stage: update
+ image: alpine:3.9
+ script:
+ - apk add --no-cache git
+ - git config --global user.email "gitlab-bot@gitlab.com"
+ - git config --global user.name "GitLab Bot"
+ - git config --global credential.username "gitlab-bot"
+ - git checkout --force ${CI_DEFAULT_BRANCH}
+ - git pull origin ${CI_DEFAULT_BRANCH}
+ - "before=$(cksum spdx-licenses.json | awk -F' ' '{ print $1 }')"
+ - echo ${before}
+ - ./bin/update-spdx
+ - "after=$(cksum spdx-licenses.json | awk -F' ' '{ print $1 }')"
+ - echo ${after}
+ - test $before -eq $after && exit 0
+ - export BRANCH="$CI_JOB_NAME-$CI_PIPELINE_IID"
+ - git checkout -b $BRANCH
+ - git add spdx-licenses.json
+ - git commit -m "Update spdx-licenses.json"
+ - git push -o merge_request.label=\"group::composition analysis\" -o merge_request.create -o merge_request.remove_source_branch ${CI_PROJECT_URL/https:\/\/gitlab.com/https://gitlab-bot:$GITLAB_TOKEN@gitlab.com}.git $BRANCH
+ rules:
+ - if: '$CI_UPDATE_SPDX == "true"'