Update CI roles
This commit is contained in:
parent
13d0d6c06d
commit
a3f095d22e
@ -83,13 +83,13 @@ debug "Family: $OPT_FAMILY"
|
|||||||
debug "Lang: $OPT_LANG"
|
debug "Lang: $OPT_LANG"
|
||||||
debug "Artifacts dir: $OPT_ARTIFACTS_DIR"
|
debug "Artifacts dir: $OPT_ARTIFACTS_DIR"
|
||||||
debug "Package name: $OPT_PACKAGE"
|
debug "Package name: $OPT_PACKAGE"
|
||||||
STR_TEST_DASHED=$(echo "${OPT_PACKAGE}_${OPT_ALIAS}" | sed -e 's/\//-/g' -e 's/ /-/g')
|
STR_TEST_DASHED=$(echo "${OPT_PACKAGE}_${OPT_ALIAS}_${OPT_LANG}" | sed -e 's/\//-/g' -e 's/ /-/g')
|
||||||
debug "Log file: $STR_TEST_DASHED.log"
|
debug "Log file: $STR_TEST_DASHED.log"
|
||||||
|
|
||||||
clean_exit() {
|
clean_exit() {
|
||||||
rc=$?;
|
rc=$?;
|
||||||
trap - SIGINT SIGTERM SIGABRT EXIT
|
trap - SIGINT SIGTERM SIGABRT EXIT
|
||||||
echo "Run test $OPT_ALIAS: done."
|
echo "Run test $OPT_ALIAS: done. Test's exit code: $rc"
|
||||||
for pid in $(ps -o pid --no-headers --ppid $$); do
|
for pid in $(ps -o pid --no-headers --ppid $$); do
|
||||||
if [ -n "$(ps -p $pid -o pid=)" ]; then
|
if [ -n "$(ps -p $pid -o pid=)" ]; then
|
||||||
kill -s HUP $pid
|
kill -s HUP $pid
|
||||||
@ -114,11 +114,16 @@ clean_exit() {
|
|||||||
status="ERROR"
|
status="ERROR"
|
||||||
fi
|
fi
|
||||||
echo "$status $OPT_ALIAS" >> "$OPT_ARTIFACTS_DIR/test.log"
|
echo "$status $OPT_ALIAS" >> "$OPT_ARTIFACTS_DIR/test.log"
|
||||||
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}_${log_file_name}"
|
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}-${log_file_name}"
|
||||||
local results="$OPT_ARTIFACTS_DIR/results.yml"
|
local results="$OPT_ARTIFACTS_DIR/results.yml"
|
||||||
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
|
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
|
||||||
test -f "$results" || echo 'results:' > "$results"
|
test -f "$results" || echo 'results:' > "$results"
|
||||||
echo "- {result: $result, test: $OPT_ALIAS}" >> "$results"
|
printf '%s\n' '' \
|
||||||
|
"- test: $OPT_ALIAS" \
|
||||||
|
" result: $result" \
|
||||||
|
" logs:" \
|
||||||
|
" - ${status}_${log_file_name}" \
|
||||||
|
>> "$results"
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
|
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
|
||||||
@ -139,15 +144,19 @@ debug "Config: `cat $tmpconfd/fonts.conf`"
|
|||||||
|
|
||||||
mkdir -p "$OPT_ARTIFACTS_DIR"
|
mkdir -p "$OPT_ARTIFACTS_DIR"
|
||||||
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
|
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
|
||||||
logfile_stdout="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
|
logfile="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
|
||||||
logfile_stderr="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED-err.log"
|
logfile="$(realpath "$logfile")"
|
||||||
exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4)
|
exec > >(tee -a "$logfile") 2>&1
|
||||||
|
|
||||||
debug "Check family assignment"
|
debug "Check family assignment"
|
||||||
res=`FONTCONFIG_FILE=$tmpconfd/fonts.conf fc-match -f "%{family[0]}" :family=$OPT_ALIAS:lang=$OPT_LANG`
|
res=`FONTCONFIG_FILE=$tmpconfd/fonts.conf fc-match -f "%{family[0]}" :family=$OPT_ALIAS:lang=$OPT_LANG`
|
||||||
|
ret=0
|
||||||
if [ "x$res" = "x$OPT_FAMILY" ]; then
|
if [ "x$res" = "x$OPT_FAMILY" ]; then
|
||||||
echo "RESULT: PASS: $OPT_FAMILY was assigned to $OPT_ALIAS as expected"
|
echo "RESULT: PASS: $OPT_FAMILY was assigned to $OPT_ALIAS as expected"
|
||||||
else
|
else
|
||||||
echo "RESULT: FAIL: $OPT_FAMILY wasn't assigned to $OPT_ALIAS (actual result: $res)"
|
echo "RESULT: FAIL: $OPT_FAMILY wasn't assigned to $OPT_ALIAS (actual result: $res)"
|
||||||
|
ret=1
|
||||||
fi
|
fi
|
||||||
rm -rf $tmpconfd
|
rm -rf $tmpconfd
|
||||||
|
|
||||||
|
exit $ret
|
||||||
|
@ -89,7 +89,7 @@ STR_TEST_DASHED=$(echo "${OPT_NAME:-$OPT_LANG}" | sed -e 's/\//-/g')
|
|||||||
clean_exit() {
|
clean_exit() {
|
||||||
rc=$?;
|
rc=$?;
|
||||||
trap - SIGINT SIGTERM SIGABRT EXIT
|
trap - SIGINT SIGTERM SIGABRT EXIT
|
||||||
echo "Run test $OPT_LANG: done."
|
echo "Run test $OPT_LANG: done. Test's exit code: $rc"
|
||||||
for pid in $(ps -o pid --no-headers --ppid $$); do
|
for pid in $(ps -o pid --no-headers --ppid $$); do
|
||||||
if [ -n "$(ps -p $pid -o pid=)" ]; then
|
if [ -n "$(ps -p $pid -o pid=)" ]; then
|
||||||
kill -s HUP $pid
|
kill -s HUP $pid
|
||||||
@ -116,20 +116,25 @@ clean_exit() {
|
|||||||
status="ERROR"
|
status="ERROR"
|
||||||
fi
|
fi
|
||||||
echo "$status $OPT_LANG" >> "$OPT_ARTIFACTS_DIR/test.log"
|
echo "$status $OPT_LANG" >> "$OPT_ARTIFACTS_DIR/test.log"
|
||||||
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}_${log_file_name}"
|
mv "$log_file_path" "$OPT_ARTIFACTS_DIR/${status}-${log_file_name}"
|
||||||
local results="$OPT_ARTIFACTS_DIR/results.yml"
|
local results="$OPT_ARTIFACTS_DIR/results.yml"
|
||||||
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
|
local result=$(echo $status | tr '[:upper:]' '[:lower:]')
|
||||||
test -f "$results" || echo 'results:' > "$results"
|
test -f "$results" || echo 'results:' > "$results"
|
||||||
echo "- {result: $result, test: $OPT_LANG}" >> "$results"
|
printf '%s\n' '' \
|
||||||
|
"- test: $OPT_LANG" \
|
||||||
|
" result: $result" \
|
||||||
|
" logs:" \
|
||||||
|
" - ${status}_${log_file_name}" \
|
||||||
|
>> "$results"
|
||||||
exit 0
|
exit 0
|
||||||
}
|
}
|
||||||
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
|
trap clean_exit SIGINT SIGTERM SIGABRT EXIT
|
||||||
|
|
||||||
mkdir -p "$OPT_ARTIFACTS_DIR"
|
mkdir -p "$OPT_ARTIFACTS_DIR"
|
||||||
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
|
export OUTPUTFILE="$(realpath "$OPT_ARTIFACTS_DIR")/$STR_TEST_DASHED-out.log"
|
||||||
logfile_stdout="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
|
logfile="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED.log"
|
||||||
logfile_stderr="$OPT_ARTIFACTS_DIR/$STR_TEST_DASHED-err.log"
|
logfile="$(realpath "$logfile")"
|
||||||
exec 3>&1 4>&2 1> >(tee -a "$logfile_stdout" >&3) 2> >(tee -a "$logfile_stderr" >&4)
|
exec > >(tee -a "$logfile") 2>&1
|
||||||
|
|
||||||
expand_regex() {
|
expand_regex() {
|
||||||
local p ret=()
|
local p ret=()
|
||||||
@ -186,6 +191,7 @@ contains() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
debug "Check language coverage"
|
debug "Check language coverage"
|
||||||
|
ret=0
|
||||||
set +f
|
set +f
|
||||||
for p in ${OPT_PATH[@]}; do
|
for p in ${OPT_PATH[@]}; do
|
||||||
for i in `find $p -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do
|
for i in `find $p -regex '.*/*\.\(t1\)?\(ttf\)?\(otf\)?\(ttc\)?\(pcf.*\)?\(pfa\)?'`; do
|
||||||
@ -213,12 +219,15 @@ for p in ${OPT_PATH[@]}; do
|
|||||||
NOT_MATCHED=("${NOT_MATCHED[@]/$n}")
|
NOT_MATCHED=("${NOT_MATCHED[@]/$n}")
|
||||||
fi
|
fi
|
||||||
debug " $i"
|
debug " $i"
|
||||||
res=`fc-validate -l $OPT_LANG $i`
|
res=`fc-validate -l $OPT_LANG $i || :`
|
||||||
if echo $res | grep -q Missing; then
|
if echo $res | grep -q Missing; then
|
||||||
echo "RESULT: FAIL: $i doesn't satisfy $OPT_LANG language coverage."
|
echo "RESULT: FAIL: $i doesn't satisfy $OPT_LANG language coverage."
|
||||||
|
ret=1
|
||||||
else
|
else
|
||||||
echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage."
|
echo "RESULT: PASS: $i satisfy $OPT_LANG language coverage."
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
|
|
||||||
|
exit $ret
|
||||||
|
@ -2,15 +2,23 @@
|
|||||||
|
|
||||||
- block:
|
- block:
|
||||||
- name: language coverage
|
- name: language coverage
|
||||||
|
environment:
|
||||||
|
LANG: "en_US.UTF-8"
|
||||||
script: run-lang-coverage-test --lang "{{ item }}" {% if coverage.values is not defined or coverage[item].path_prefix is not defined %} --path {{ path_prefix }} {% else %} {{ '--path "' + (coverage[item].path_prefix | join('" --path "')) + '"' }} {% endif %} --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined or coverage[item].name is not defined else "--name " + coverage[item].name }} {{ "" if coverage.values is not defined or coverage[item].exclude is not defined else '--exclude "' + (coverage[item].exclude | join('" --exclude "')) + '"'}} {{ "" if coverage.values is not defined or coverage[item].include is not defined else '--include "' + (coverage[item].include | join('" --include "')) + '"'}}
|
script: run-lang-coverage-test --lang "{{ item }}" {% if coverage.values is not defined or coverage[item].path_prefix is not defined %} --path {{ path_prefix }} {% else %} {{ '--path "' + (coverage[item].path_prefix | join('" --path "')) + '"' }} {% endif %} --artifactsdir "{{ remote_artifacts }}" {{ "" if coverage.values is not defined or coverage[item].name is not defined else "--name " + coverage[item].name }} {{ "" if coverage.values is not defined or coverage[item].exclude is not defined else '--exclude "' + (coverage[item].exclude | join('" --exclude "')) + '"'}} {{ "" if coverage.values is not defined or coverage[item].include is not defined else '--include "' + (coverage[item].include | join('" --include "')) + '"'}}
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}"
|
- "{{ coverage if coverage.keys is not defined else coverage.keys()|list }}"
|
||||||
- name: generic family assignment
|
- name: generic family assignment
|
||||||
|
environment:
|
||||||
|
LANG: "en_US.UTF-8"
|
||||||
when: families is defined
|
when: families is defined
|
||||||
script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package if item.package is not defined else item.package }}
|
script: run-family-test --lang {{ item.lang }} --family '{{ item.family }}' --alias {{ item.alias }} --artifactsdir {{ remote_artifacts }} --package {{ package if item.package is not defined else item.package }}
|
||||||
with_items:
|
with_items:
|
||||||
- "{{ families }}"
|
- "{{ families }}"
|
||||||
|
|
||||||
|
- name: Collect all of failures into one file
|
||||||
|
shell: |
|
||||||
|
grep -v PASS "{{ remote_artifacts }}"/FAIL_*.log > "{{ remote_artifacts }}"/FAIL-all.log || :
|
||||||
|
|
||||||
- name: Check the results
|
- name: Check the results
|
||||||
shell: |
|
shell: |
|
||||||
log="{{ remote_artifacts }}/test.log"
|
log="{{ remote_artifacts }}/test.log"
|
||||||
@ -38,3 +46,7 @@
|
|||||||
|
|
||||||
- include_role:
|
- include_role:
|
||||||
name: str-common-final
|
name: str-common-final
|
||||||
|
|
||||||
|
- name: Validate the result
|
||||||
|
shell: echo "test_results.stdout"
|
||||||
|
failed_when: test_results.stdout != 'PASS'
|
||||||
|
Loading…
Reference in New Issue
Block a user