- hosts: all vars: project_ver: 1.0 src_project: "Cloud:StarlingX:2.0" target_project: "home:saulwold:sandbox-{{ target_distro }}" test_project: "{{ target_project }}-{{ project_ver }}" stx_project_desc: "" stx_url: "" osc_user: "saulwold" osc_register: osc_result obs_projects: [] spec_dirs: [] sorted_dirs: [] osc_key_key: "@ub@FB7OZxs391wt" tasks: - name: Print OS Family debug: msg: "OS distribution: {{ ansible_distribution }}" - name: Setup local distro flag CentOS set_fact: target_distro: centos when: ansible_distribution == "CentOS" - name: Setup local distro flag openSUSE set_fact: target_distro: opensuse when: ansible_distribution == "openSUSE Leap" - name: Setup local directories when not using zuul set_fact: top_dir: /test src_dir: /test when: zuul is not defined - name: Setup local directories from zuul data set_fact: top_dir: "{{ zuul.executor.src_root }}" src_dir: "{{ zuul.project.src_dir }}" when: zuul is defined - name: Print OS Family debug: msg: "OS distribution: {{ ansible_distribution }} {{ target_distro }}" - name: Get OSC Command import_role: name: osc tasks_from: install_osc - name: Create temporary directory tempfile: state: directory prefix: stx. register: stx_pkg_tmpdir - name: Setup oscrc file import_role: name: osc tasks_from: create_oscrc - name: OSC Version import_role: name: osc vars: osc_options: "--version" register: osc_version - name: Clean OSC Project import_role: name: osc vars: osc_options: rdelete -r -m 'rpm-packing CI Cleanup' {{ test_project }} ignore_errors: yes - name: Create Project import_role: name: osc tasks_from: create_meta - name: Freeze Project import_role: name: osc tasks_from: freeze - name: Init Project import_role: name: osc vars: osc_options: init {{ test_project }} - name: Add prjconf import_role: name: osc tasks_from: create_prjconf when: target_distro == "centos" - name: Find local directories with spec files find: paths: "{{ src_dir }}" hidden: false file_type: directory patterns: "{{ target_distro }}" recurse: yes register: specfiles - name: Generate Repo name set_fact: repo_name: "{{ specfiles.files.0.path.split('/')[-3] }}" - name: Generate Repo Dir set_fact: repo_dir: "{{ src_dir}}/{{ repo_name }}" - debug: msg: "{{ repo_name }}: {{ repo_dir }} " - name: List spec files debug: msg: "Specfile List: {{ specfiles }}" - name: Create Project list set_fact: spec_dirs: "{{ spec_dirs }} + [ '{{ item.path.split('/')[-2] }}' ]" with_items: "{{ specfiles.files }}" - name: Sort directories set_fact: sorted_dirs: "{{ spec_dirs | sort | unique }}" - name: "list Sorted Directories" debug: msg: "Sorted Directories: {{ item }}" with_items: "{{ sorted_dirs }}" - name: OSC Link Package import_role: name: osc tasks_from: linkpackage - name: OSC detachbranch import_role: name: osc tasks_from: detachbranch # pushd ./out # sleep 5 # # Check if there is no change, then pretent success # if [ $($osc_timed ls ${{OBS_TEST_PROJECT}} | wc -l) -lt 1 ]; then # echo "Apparently there is no change... claiming SUCCESS" # exit 0 # fi # # while true; do # unset pending # unset failed # unset kickscheduler # unset succeeded # res=`osc results --csv -r standard` # if [ $? -ne 0 ]; then # sleep 5 # continue # fi # echo "... $(date): " # for r in $res; do # # some failures? # if [[ $r =~ broken$ ]]; then # echo "ignoring OBS broken state" # echo $r # continue # fi # # some failures? # if [[ $r =~ (failed$|unresolvable$) ]]; then # echo $r # failed=1 # fi # # still pending builds? # if [[ $r =~ (blocked$|scheduled$|dispatching$|building$|signing$) ]]; then # pending=1 # fi # # scheduler stuck? # if [[ $r =~ (finished$|unknown$|outdated$) ]]; then # kickscheduler=1 # fi # # found something? # if [[ $r =~ succeeded$ ]]; then # succeeded=1 # fi # done # # if [ -n "$kickscheduler" ]; then # echo "# $(date)" | osc meta prjconf -F - ${{OBS_TEST_PROJECT}} # sleep $((RANDOM%60+30)) # echo "kicking scheduler" # continue # fi # # if [ -n "$pending" ]; then # sleep $((RANDOM%50+30)) # echo "" # continue # fi # # if [ -n "$failed" ]; then # echo "Build failed :-(" # exit 1 # elif [ -n "$succeeded" ]; # break # fi # done # # - name: Clean-up tmp directory # file: # path: "{{ stx_pkg_tmpdir.path }}" # state: absent # when: stx_pkg_tmpdir.path is defined