Job examples

Job examplesΒΆ

The following text is the example of Jenkins jobs at you can create for plugins.

  • deploy-plugin.sh:

    #!/bin/bash
    set -ex
    
    export SYSTEM_TESTS="${WORKSPACE}/utils/\
    jenkins/system_tests.sh"
    export LOGS_DIR=${WORKSPACE}/logs/\
    ${BUILD_NUMBER}
    export VENV_PATH='/home/jenkins/\
    venv-nailgun-tests-2.9'
    # Change this to appropriate fuel-qa
    # variable for your plugin
    YOUR_PLUGIN_PATH="$(ls ./*rpm)"
    export YOUR_PLUGIN_PATH
    
    sh -x "${SYSTEM_TESTS}" -w "${WORKSPACE}" -V \
    "${VENV_PATH}" -i "${ISO_PATH}" -t test -o \
    --group="${TEST_GROUP}"
    
  • prepare_env.sh:

    #!/bin/bash
    set -ex
    
    export VENV_PATH="/home/jenkins/\
    venv-nailgun-tests-2.9"
    
    rm -rf "${VENV_PATH}"
    
    REQS_PATH="${WORKSPACE}/fuel-qa/\
    fuelweb_test/requirements.txt"
    
    virtualenv --system-site-packages \
    "${VENV_PATH}"
    source "${VENV_PATH}/bin/activate"
    pip install -r "${REQS_PATH}" --upgrade
    django-admin.py syncdb --settings=devops.\
    settings --noinput
    django-admin.py migrate devops --settings\
    =devops.settings --noinput
    deactivate
    
  • syntax-build-plugin.sh:

    #!/bin/bash
    set -ex
    
    find . -name '*.erb' -print 0 | xargs -0 -P1 \
    -I '%' erb -P -x -T '-' % | ruby -c
    find . -name '*.pp' -print 0| xargs -0 -P1 \
    puppet parser validate --verbose
    find . -name '*.pp' -print 0| xargs -0 -P1 \
    puppet-lint \
      --fail-on-warnings \
      --with-context \
      --with-filename \
      --no-140chars-check \
      --no-variable_scope-check \
      --no-nested_classes_or_defines-check \
      --no-autoloader_layout-check \
      --no-class_inherits_from_params_class-check \
      --no-documentation-check \
      --no-arrow_alignment-check
    
    fpb --check  ./
    fpb --build  ./
    
  • plugins.yaml:

    - project:
        name: plugin_name #Your plugin mame
        path_to_fuel_iso: $PWD #Path to FuelISO
        plugin_repo: plugin_repo #Your plugin repo name\
        at stackforge
        email_to: emails_list #List of emails separated\
        by comma
        test_group: test_group #Test group in fuel-qa for\
        deployment tests of your plugin
        jobs:
          - 'prepare_env'
          - '{name}.build'
          - '{name}.{dist}.deploy':
              dist: 'centos'
          - '{name}.{dist}.deploy':
              dist: 'ubuntu'
    
    - job-template:
        name: 'prepare_env'
        builders:
          - shell:
              !include-raw-escape './builders/prepare_env.sh'
        description: 'Prepare environment to testing'
        logrotate:
          numToKeep: 10
        parameters:
          - string:
              name: 'GERRIT_REFSPEC'
              default: 'refs/heads/master'
        scm:
          - git:
              branches:
                - $GERRIT_BRANCH
              refspec: $GERRIT_REFSPEC
              url: 'https://review.openstack.org/stackforge\
              /fuel-qa'
              choosing-strategy: gerrit
              clean:
                before: true
        publishers:
          - email:
              notify-every-unstable-build: true
              recipients: '{email_to}'
    
    - job-template:
        name: '{name}.build'
        builders:
          - shell:
              !include-raw-escape './builders/syntax-\
              build-plugin.sh'
        description: '<a href=https://github.com/\
        stackforge/{plugin_repo}>Build {name} plugin\
        from fuel-plugins project</a>'
        logrotate:
          numToKeep: 10
        parameters:
          - string:
              name: 'GERRIT_REFSPEC'
              default: 'refs/heads/master'
        scm:
          - git:
              branches:
                - $GERRIT_BRANCH
              name: ''
              refspec: $GERRIT_REFSPEC
              url: 'https://review.openstack.org/\
              stackforge/{plugin_repo}'
              choosing-strategy: gerrit
              clean:
                before: true
        triggers:
          - gerrit:
              trigger-on:
                - patchset-created-event #Trigger\
                plugin build for every gerrit patchset
              projects:
                - project-compare-type: 'PLAIN'
                  project-pattern: '{plugin_repo}'
                  branches:
                    - branch-compare-type: 'ANT'
                      branch-pattern: '**'
              silent: true
              server-name: 'review.openstack.org'
        publishers:
          - archive:
              artifacts: '*.rpm'
          - email:
              notify-every-unstable-build: true
              recipients: '{email_to}'
    
    - job-template:
        name: '{name}.{dist}.deploy'
        builders:
          - copyartifact:
              project: '{name}.build'
              which-build: last-successful
          - inject:
              properties-content: |
                OPENSTACK_RELEASE={dist}
                TEST_GROUP={test_group}
                ISO_PATH={path_to_fuel_iso}
          - shell:
              !include-raw-escape './builders/\
              deploy-plugin.sh'
        description: 'fuel-qa system test for {name}'
        logrotate:
          numToKeep: 10
        parameters:
          - string:
              name: 'GERRIT_REFSPEC'
              default: 'refs/heads/master'
        scm:
          - git:
              branches:
                - $GERRIT_BRANCH
              refspec: $GERRIT_REFSPEC
              url: 'https://review.openstack.org/\
              stackforge/fuel-qa'
              choosing-strategy: gerrit
              clean:
                before: true
              wipe-workspace: false
        publishers:
          - archive:
              artifacts: 'logs/$BUILD_NUMBER/*'
          - email:
              notify-every-unstable-build: true
              recipients: '{email_to}'
    
Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

Contents