--- /dev/null
+---
+name: Call Gerrit ci-management Merge
+
+# yamllint disable-line rule:truthy
+on:
+ workflow_dispatch:
+ inputs:
+ GERRIT_BRANCH:
+ description: "Branch that change is against"
+ required: true
+ type: string
+ GERRIT_CHANGE_ID:
+ description: "The ID for the change"
+ required: true
+ type: string
+ GERRIT_CHANGE_NUMBER:
+ description: "The Gerrit number"
+ required: true
+ type: string
+ GERRIT_CHANGE_URL:
+ description: "URL to the change"
+ required: true
+ type: string
+ GERRIT_EVENT_TYPE:
+ description: "Type of Gerrit event"
+ required: true
+ type: string
+ GERRIT_PATCHSET_NUMBER:
+ description: "The patch number for the change"
+ required: true
+ type: string
+ GERRIT_PATCHSET_REVISION:
+ description: "The revision sha"
+ required: true
+ type: string
+ GERRIT_PROJECT:
+ description: "Project in Gerrit"
+ required: true
+ type: string
+ GERRIT_REFSPEC:
+ description: "Gerrit refspec of change"
+ required: true
+ type: string
+
+jobs:
+ call-gerrit-ci-management-merge:
+ # yamllint disable-line rule:line-length
+ uses: lfit/releng-reusable-workflows/.github/workflows/gerrit-ci-management-merge.yaml@3c77f3b31647e3494e7ca37602e4f31de0c52e28
+ with:
+ GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
+ GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
+ GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
+ GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
+ GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
+ GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
+ GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
+ GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
+ GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
+ secrets:
+ JOBBUILDER_PROD_PSW: ${{ secrets.JOBBUILDER_PROD_PSW }}
--- /dev/null
+---
+name: Call Gerrit ci-management Verify
+
+# yamllint disable-line rule:truthy
+on:
+ workflow_dispatch:
+ inputs:
+ GERRIT_BRANCH:
+ description: "Branch that change is against"
+ required: true
+ type: string
+ GERRIT_CHANGE_ID:
+ description: "The ID for the change"
+ required: true
+ type: string
+ GERRIT_CHANGE_NUMBER:
+ description: "The Gerrit number"
+ required: true
+ type: string
+ GERRIT_CHANGE_URL:
+ description: "URL to the change"
+ required: true
+ type: string
+ GERRIT_EVENT_TYPE:
+ description: "Type of Gerrit event"
+ required: true
+ type: string
+ GERRIT_PATCHSET_NUMBER:
+ description: "The patch number for the change"
+ required: true
+ type: string
+ GERRIT_PATCHSET_REVISION:
+ description: "The revision sha"
+ required: true
+ type: string
+ GERRIT_PROJECT:
+ description: "Project in Gerrit"
+ required: true
+ type: string
+ GERRIT_REFSPEC:
+ description: "Gerrit refspec of change"
+ required: true
+ type: string
+
+jobs:
+ call-gerrit-ci-management-verify:
+ # yamllint disable-line rule:line-length
+ uses: lfit/releng-reusable-workflows/.github/workflows/gerrit-ci-management-verify.yaml@4763193f992b39532dd373a268ed6d6fe11f8b72
+ with:
+ GERRIT_BRANCH: ${{ inputs.GERRIT_BRANCH }}
+ GERRIT_CHANGE_ID: ${{ inputs.GERRIT_CHANGE_ID }}
+ GERRIT_CHANGE_NUMBER: ${{ inputs.GERRIT_CHANGE_NUMBER }}
+ GERRIT_CHANGE_URL: ${{ inputs.GERRIT_CHANGE_URL }}
+ GERRIT_EVENT_TYPE: ${{ inputs.GERRIT_EVENT_TYPE }}
+ GERRIT_PATCHSET_NUMBER: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
+ GERRIT_PATCHSET_REVISION: ${{ inputs.GERRIT_PATCHSET_REVISION }}
+ GERRIT_PROJECT: ${{ inputs.GERRIT_PROJECT }}
+ GERRIT_REFSPEC: ${{ inputs.GERRIT_REFSPEC }}
+ secrets:
+ GERRIT_SSH_PRIVKEY: ${{ secrets.GERRIT_SSH_PRIVKEY }}
+++ /dev/null
----
-name: Gerrit Verify
-
-# yamllint disable-line rule:truthy
-on:
- workflow_dispatch:
- inputs:
- GERRIT_BRANCH:
- description: "Branch that change is against"
- required: true
- type: string
- GERRIT_CHANGE_ID:
- description: "The ID for the change"
- required: true
- type: string
- GERRIT_CHANGE_NUMBER:
- description: "The Gerrit number"
- required: true
- type: string
- GERRIT_CHANGE_URL:
- description: "URL to the change"
- required: true
- type: string
- GERRIT_EVENT_TYPE:
- description: "Type of Gerrit event"
- required: true
- type: string
- GERRIT_PATCHSET_NUMBER:
- description: "The patch number for the change"
- required: true
- type: string
- GERRIT_PATCHSET_REVISION:
- description: "The revision sha"
- required: true
- type: string
- GERRIT_PROJECT:
- description: "Project in Gerrit"
- required: true
- type: string
- GERRIT_REFSPEC:
- description: "Gerrit refspec of change"
- required: true
- type: string
-
-concurrency:
- group: ${{ github.event.inputs.GERRIT_CHANGE_ID || github.run_id }}
- cancel-in-progress: true
-
-jobs:
- prepare:
- runs-on: ubuntu-latest
- steps:
- - name: Clear votes
- uses: lfit/gerrit-review-action@v0.3
- with:
- host: ${{ vars.GERRIT_SERVER }}
- username: ${{ vars.GERRIT_SSH_USER }}
- key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
- known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
- gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
- gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
- vote-type: clear
- - name: Allow replication
- run: sleep 10s
-
- actionlint:
- needs: prepare
- runs-on: ubuntu-latest
- steps:
- - uses: lfit/checkout-gerrit-change-action@v0.3
- with:
- gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
- delay: "0s"
- - name: Download actionlint
- id: get_actionlint
- run: bash <(curl https://raw.githubusercontent.com/rhysd/actionlint/main/scripts/download-actionlint.bash)
- shell: bash
- - name: Check workflow files
- run: ${{ steps.get_actionlint.outputs.executable }} -color
- shell: bash
-
- # run pre-commit tox env separately to get use of more parallel processing
- pre-commit:
- needs: prepare
- runs-on: ubuntu-latest
- steps:
- - uses: lfit/checkout-gerrit-change-action@v0.3
- with:
- gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
- delay: "0s"
- - uses: actions/setup-python@v4
- with:
- python-version: "3.11"
- - name: Run static analysis and format checkers
- run: pipx run pre-commit run --all-files --show-diff-on-failure
-
- jjb-validation:
- needs: prepare
- runs-on: ubuntu-latest
- steps:
- - uses: lfit/checkout-gerrit-change-action@v0.3
- with:
- gerrit-refspec: ${{ inputs.GERRIT_REFSPEC }}
- delay: "0s"
- - uses: actions/setup-python@v4
- id: setup-python
- with:
- python-version: "3.11"
- - name: Clone git submodules
- run: git submodule update --init
- - name: Run JJB Verify
- run: |
- python -m pip install --upgrade pip
- pip install jenkins-job-builder
- mkdir -p "${HOME}/.config/jenkins_jobs"
- cat << EOF > "${HOME}/.config/jenkins_jobs/jenkins_jobs.ini"
- [job_builder]
- ignore_cache=True
- keep_descriptions=False
- include_path=.
- recursive=True
- query_plugins_info=False
- config-xml=True
- EOF
- jenkins-jobs test -o archives/job-configs jjb/
-
- vote:
- if: ${{ always() }}
- needs: [prepare, actionlint, pre-commit, jjb-validation]
- runs-on: ubuntu-latest
- steps:
- - uses: technote-space/workflow-conclusion-action@v3
- - name: Set vote
- uses: lfit/gerrit-review-action@v0.3
- with:
- host: ${{ vars.GERRIT_SERVER }}
- username: ${{ vars.GERRIT_SSH_USER }}
- key: ${{ secrets.GERRIT_SSH_PRIVKEY }}
- known_hosts: ${{ vars.GERRIT_KNOWN_HOSTS }}
- gerrit-change-number: ${{ inputs.GERRIT_CHANGE_NUMBER }}
- gerrit-patchset-number: ${{ inputs.GERRIT_PATCHSET_NUMBER }}
- vote-type: ${{ env.WORKFLOW_CONCLUSION }}
-Subproject commit 9fab4a0c544f801dd07ac78f67375ddee67e76fc
+Subproject commit 1afbd8edc78c9d6f5f1337791d31881fee49a376
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
stream:
- "master":
branch: "master"
+ - "london":
+ branch: "london"
- "kohn":
branch: "kohn"
mvn-settings: "ccsdk-distribution-settings"
- "master":
java-version: openjdk17
branch: "master"
+ - "london":
+ java-version: openjdk17
+ branch: "london"
- "kohn":
java-version: openjdk11
branch: "kohn"
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
stream:
- "master":
branch: "master"
- java-version: openjdk11
+ java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
- java-version: openjdk17
+ java-version: openjdk11
mvn-version: "mvn38"
mvn-settings: "ccsdk-distribution-settings"
files: "**"
branch: "master"
java-version: openjdk17
mvn-opts: "-Xmx3072m"
+ - "london":
+ branch: "london"
+ java-version: openjdk17
+ mvn-opts: "-Xmx3072m"
- "kohn":
branch: "kohn"
java-version: openjdk11
cron: ""
sbom-generator: true
- "{project-name}-gerrit-release-jobs":
- build-node: centos8-docker-8c-8g
+ build-node: centos7-docker-2c-1g
project: "ccsdk/odl-legacy"
stream:
- "master":
branch: "master"
+ - "london":
+ branch: "london"
java-version: openjdk17
mvn-version: "mvn38"
mvn-settings: "ccsdk-odl-legacy-settings"
mvn-params: "-Dmaven.test.skip=true -Drevision=3.0.0"
- "{project-name}-gerrit-release-jobs":
mvn-params: "-Drevision=3.0.0"
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
templates: docker
update-cloud-image: true
+- project:
+ name: packer-devstack-jobs
+ jobs:
+ - gerrit-packer-merge
+ - gerrit-packer-verify-build
+
+ project: ci-management
+ project-name: ci-management
+ branch: master
+ archive-artifacts: "**/*.log"
+
+ build-node: centos8-builder-2c-1g
+ build-timeout: 90
+
+ platforms:
+ - centos-cs-8
+ templates: devstack
+ update-cloud-image: true
+
+- project:
+ name: packer-devstack-pre-pip-yoga-jobs
+ jobs:
+ - gerrit-packer-merge
+ - gerrit-packer-verify-build
+
+ project: ci-management
+ project-name: ci-management
+ branch: master
+ archive-artifacts: "**/*.log"
+
+ build-node: centos8-builder-2c-1g
+ build-timeout: 90
+
+ platforms:
+ - centos-cs-8
+ templates: devstack-pre-pip-yoga
+ update-cloud-image: true
+
- project:
name: packer-memcached-jobs
jobs:
exit 0
fi
# config files, required
- for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css; do
+ for i in docs/index.rst docs/conf.py docs/requirements-docs.txt docs/_static/css/ribbon.css .readthedocs.yaml; do
if [ ! -f $i ] ; then
log_failure_msg "FAIL $i missing. Please add it or remove the full docs directory."
exitstatus="1"
unset cssmaxwidth
fi
unset filename
+ # readthedocs.yaml
+ filename=".readthedocs.yaml"
+ if [ ! -f $filename ]; then
+ log_failure_msg "FAIL $filename missing. Please add it or remove the full docs directory."
+ exitstatus="1"
+ else
+ log_success_msg "INFO $filename found."
+ # obsolete parameter: (build:) image: latest
+ buildimage=$(grep '^[ \t]*image:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ $buildimage == *"latest"* ]]; then
+ log_failure_msg "FAIL Setting '(build: image:) latest' found in $filename. Please remove it."
+ exitstatus="1"
+ else
+ log_success_msg "INFO Setting '(build: image:) latest' not found in $filename."
+ fi
+ unset buildimage
+ # obsolete parameter: (python:) version: 3.7
+ pythonversion=$(grep '^[ \t]*version:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ $pythonversion == *"3.7"* ]]; then
+ log_failure_msg "FAIL Setting '(python:) version: 3.7' found in $filename. Please remove it."
+ exitstatus="1"
+ else
+ log_success_msg "INFO Setting '(python:) version: 3.7' not found in $filename."
+ fi
+ unset pythonversion
+ # obsolete parameter: submodules:
+ submodules=$(grep '^[ \t]*submodules:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ $submodules == *"submodules:"* ]]; then
+ log_failure_msg "FAIL Setting 'submodules:' found in $filename. Please remove it."
+ exitstatus="1"
+ else
+ log_success_msg "INFO Setting 'submodules:' not found in $filename."
+ fi
+ unset submodules
+ # required parameter: (build:) os:
+ buildos=$(grep '^[ \t]*os:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ ! $buildos == *"ubuntu-20.04"* ]]; then
+ log_failure_msg "FAIL Setting '(build:) os: ubuntu-20.04' missing in $filename. Please add it."
+ exitstatus="1"
+ else
+ log_success_msg "INFO Setting '(build:) os: ubuntu-20.04' found in $filename."
+ fi
+ unset buildos
+ # required parameter: (build: tools:) python
+ buildtoolspython=$(grep '^[ \t]*python:' $filename | sed -e 's/^[ \t]*//' | sed -e 's/;$//');
+ if [[ ! $buildtoolspython == *\"3.8\"* ]]; then
+ log_failure_msg "FAIL Setting '(build: tools:) python: \"3.8\"' missing in $filename. Please add it."
+ exitstatus="1"
+ else
+ log_success_msg "INFO Setting '(build: tools:) python: \"3.8\"' found in $filename."
+ fi
+ unset buildtoolspython
+ fi
+ unset filename
# message, end
if [ "$exitstatus" = "0" ]; then
if [ "$warning" = "0" ]; then
- defaults:
name: global
+ # General job settings
build-days-to-keep: 30
# the below discarder values are hard coded into the macro and are only here
# for documentation purposes
build-artifact-days-to-keep: -1
build-artifact-num-to-keep: 5
+ # Email preferences
failure-notification: "releng+onap@linuxfoundation.org"
failure-notification-prefix: "[releng]"
staging-profile-id: 176c31dfe190a
# Timeout in minutes
build-timeout: 90
+
+ # Default node, if not defined in the job
build-node: ubuntu1804-builder-4c-4g
archive-artifacts: ""
--- /dev/null
+#!/bin/bash
+
+py_files=$(find . -name '*.py' -not -path "*/node_modules/*" -not -path "*/target/*")
+
+if python3 -m py_compile ${py_files}
+then
+ echo "All python files compiled successfully"
+ exit 0
+else
+ echo "Failed to compile all files in Python 3"
+ exit 1
+fi
name: sdc
project-name: "sdc"
jobs:
+ - "{project-name}-{stream}-{area}-verify-shell":
+ # This is to ensure all script are Python 3 compatible
+ area: verify
+ build-timeout: 45
+ script: !include-raw-escape: "python3-verify.sh"
- "{project-name}-{stream}-verify-java":
# this build is unit test only (Verify 1/2)
mvn-params: "-P skip-integration-tests -Dnpm.registry=https://nexus3.onap.org/repository/npm.public/npm/-/"
stream:
- "master":
branch: "master"
- java-version: openjdk17
+ java-version: openjdk11
+ - "london":
+ branch: "london"
+ java-version: openjdk11
- "kohn":
branch: "kohn"
java-version: openjdk11
project: "sdnc/apps"
project-name: "sdnc-apps"
branch: "master"
- java-version: openjdk17
+ java-version: openjdk11
mvn-version: "mvn38"
mvn-settings: "sdnc-apps-settings"
mvn-goals: "clean install"
stream:
- "master":
branch: "master"
- java-version: openjdk17
+ java-version: openjdk11
mvn-version: "mvn38"
mvn-settings: "sdnc-apps-settings"
mvn-opts: "--add-opens=java.base/java.util=ALL-UNNAMED"
stream:
- "master":
branch: "master"
+ - "london":
+ branch: "london"
- "kohn":
branch: "kohn"
mvn-settings: "sdnc-oam-settings"
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
- "master":
branch: "master"
java-version: openjdk17
+ - "london":
+ branch: "london"
+ java-version: openjdk17
- "kohn":
branch: "kohn"
java-version: openjdk11
-Subproject commit 15aba27a45f98edb33890daa3712c6a4371b2947
+Subproject commit 17bfe57174ebf0e699cfcc235e83d6d568695651
--- /dev/null
+../common-packer/provision/devstack-centos.yaml
\ No newline at end of file
--- /dev/null
+../common-packer/provision/devstack-pre-pip-centos.yaml
\ No newline at end of file
--- /dev/null
+../common-packer/templates/devstack-pre-pip-yoga.json
\ No newline at end of file
--- /dev/null
+../common-packer/templates/devstack.json
\ No newline at end of file