Overview
Comment: | Added tagging support and fixed a few bugs |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
90ddcf0e78b195fc564f4733dfde5dc2 |
User & Date: | rkeene on 2017-10-23 16:03:54.994 |
Other Links: | manifest | tags |
Context
2017-10-23
| ||
21:43 | Add better support for excluding and including branches and initialization commands check-in: 43857910ad user: rkeene tags: trunk | |
16:03 | Added tagging support and fixed a few bugs check-in: 90ddcf0e78 user: rkeene tags: trunk | |
15:41 | Started autobuild script which will build and test Fossil projects check-in: 9ee3ee13b7 user: rkeene tags: trunk | |
Changes
Modified bin/autobuild
from [e7d26294e3]
to [1d1fbb422c].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 | exit 1 fi if [ -z "${fossilCIDir}" ]; then fossilCIDir='.fossil-ci' fi # 1. Register cleanup tmpdir='' function cleanup() { if [ -n "${tmpdir}" ]; then rm -rf "${tmpdir}" fi } | > > > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | exit 1 fi if [ -z "${fossilCIDir}" ]; then fossilCIDir='.fossil-ci' fi # 0. Resolve paths repository="$(cd "$(dirname "${repository}")" && echo "$(pwd)/$(basename "${repository}")")" || exit 1 workdir="$(mkdir -p "${workdir}" && cd "${workdir}" && pwd)" || exit 1 # 1. Register cleanup tmpdir='' function cleanup() { if [ -n "${tmpdir}" ]; then rm -rf "${tmpdir}" fi } |
︙ | ︙ | |||
32 33 34 35 36 37 38 | ## 2.c. Basic locale unset $(locale | cut -f 1 -d =) ## 2.d. Sane umask umask 022 # 3. Update the Fossil repository | | > > > > | > > > > > > > | 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | ## 2.c. Basic locale unset $(locale | cut -f 1 -d =) ## 2.d. Sane umask umask 022 # 3. Update the Fossil repository fossil sync -R "${repository}" >/dev/null 2>/dev/null || : # 4. Get a list of branches branches=( $(fossil branch -R "${repository}" list) ) # 5. Get Fossil CI configuration from the trunk branch ## 5.a. Set default config excludedBranches='' buildCommands=('./autogen.sh || :' ./configure make) testCommands=() releaseCommands=() builderID='' projectName="$(fossil info -R "${repository}" | awk '/^project-name:/{ sub(/^project-name: */, ""); gsub(/ /, ""); print; }')" tagSuffix='' tagPrefix='' ## 5.b. Read config config="$(fossil cat -R "${repository}" -r trunk "${fossilCIDir}/config" 2>/dev/null)" || : ## 5.c Load config if [ -f ~/.fossil-ci/config ]; then . ~/.fossil-ci/config fi eval "${config}" if [ -f ~/.fossil-ci/"${projectName}"/config ]; then . ~/.fossil-ci/"${projectName}"/config fi ## 5.d. Post-process config if [ -z "${tagSuffix}" ]; then if [ -n "${builderID}" ]; then tagSuffix="-${builderID}" fi fi # 6. For each branch, attempt to build for branch in "${branches[@]}"; do ## 6.a. Ignore excluded branches case "${branch}" in ${excludedBranches}) continue |
︙ | ︙ | |||
100 101 102 103 104 105 106 | ## 6.f. Build and log the results, if there are any build_pass='1' ( cd "${branchdir}" || exit 1 for cmd in "${buildCommands[@]}"; do | | < | | > > > > > > > > > > > > > > > > > > > > > > > > | 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | ## 6.f. Build and log the results, if there are any build_pass='1' ( cd "${branchdir}" || exit 1 for cmd in "${buildCommands[@]}"; do ( eval "set -x; ${cmd}" ) || exit 1 done ) > "${builddir}/build.log" 2>&1 || build_pass='0' ### 6.g. Test the branch if [ "${build_pass}" = '1' ]; then tests_pass='1' ( cd "${branchdir}" || exit 1 for cmd in "${testCommands[@]}"; do ( eval "set -x; ${cmd}" ) || exit 1 done ) > "${builddir}/test.log" 2>&1 || tests_pass='0' fi ### 6.h. Tag the branch with tagsToAdd=() if [ "${build_pass}" = '1' ]; then tagsToAdd=("${tagsToAdd[@]}" build-pass) if [ "${tests_pass}" = '1' ]; then tagsToAdd=("${tagsToAdd[@]}" tests-pass) else tagsToAdd=("${tagsToAdd[@]}" tests-fail) fi else tagsToAdd=("${tagsToAdd[@]}" build-fail) fi tagsToAddOpts=() for tag in "${tagsToAdd[@]}"; do tagsToAddOpts=("${tagsToAddOpts[@]}" --tag "${tagPrefix}${tag}${tagSuffix}") done fossil amend -R "${repository}" "${branch}" "${tagsToAddOpts[@]}" > "${builddir}/update.log" 2>&1 ### 6.i. Upload the logs somewhere if requested #### XXX:TODO ### 6.j. Upload build artifacts somewhere if requested #### XXX:TODO done # 7. Clean up any branches that no longer exist ## XXX:TODO |