File tree Expand file tree Collapse file tree 2 files changed +100
-0
lines changed Expand file tree Collapse file tree 2 files changed +100
-0
lines changed Original file line number Diff line number Diff line change 1+ name : ci-only
2+
3+ on :
4+ push :
5+ branches :
6+ - master
7+ pull_request :
8+ types :
9+ - opened
10+ - synchronize
11+ - reopened
12+
13+ jobs :
14+ build :
15+ runs-on : ubuntu-latest
16+ steps :
17+ - uses : actions/checkout@v3
18+ with :
19+ fetch-depth : 1
20+ - name : Setup faas-cli
21+ run : curl -sSL https://cli.openfaas.com | sh
22+ - name : Verify all templates
23+ run : bash verify.sh
Original file line number Diff line number Diff line change 1+ #! /bin/bash
2+ set -e
3+
4+ CLI=" faas-cli"
5+
6+ build_template () {
7+ template=$1
8+
9+ echo Building $template
10+ func_name=$template -ci
11+ $CLI new $func_name --lang $template 2> /dev/null 1>&2
12+ $CLI build -f $func_name .yml
13+ }
14+
15+ verify_and_clean () {
16+ image=$1
17+ tag_name=latest
18+
19+ echo Verifying $template
20+ container=$( docker run -d -p 8080:8080 $func_name :$tag_name )
21+ sleep 5 # wait for slower templates to start
22+ output=$( curl -s -d " testing" http://127.0.0.1:8080)
23+
24+ echo $image output: $output
25+ success=false
26+ if [ ! -z " $output " ]; then # output was not empty = good template
27+ success=true
28+ fi
29+
30+ echo Cleaning $image
31+ docker rm $container -f 2> /dev/null 1>&2
32+ docker rmi $func_name :$tag_name 2> /dev/null 1>&2
33+
34+ if [ " $success " = false ]; then
35+ echo $image template failed validation
36+ exit 1
37+ else
38+ echo $image template validation successful
39+ fi
40+ }
41+
42+ if ! [ -x " $( command -v faas-cli) " ]; then
43+ HERE=$( pwd)
44+ cd /tmp/
45+ curl -sSL https://cli.openfaas.com | sh
46+ CLI=" /tmp/faas-cli"
47+
48+ cd $HERE
49+ fi
50+
51+ cli_version=$( $CLI version --short-version)
52+
53+ echo Validating templates with faas-cli $cli_version
54+
55+ cd ./template
56+
57+ # verify each of the templates
58+ for dir in ./* /; do
59+ dirname=${dir%*/ }
60+ template=${dirname##*/ }
61+
62+ # skip arm templates
63+ case " $template " in
64+ * -arm* ) continue ;;
65+ esac
66+
67+ pushd ../ 2> /dev/null 1>&2
68+
69+ build_template $template
70+ verify_and_clean $template
71+
72+ popd 2> /dev/null 1>&2
73+ done
74+
75+ # remove the generated files and folders if successful
76+ cd ../
77+ rm -rf * -ci * -ci.yml
You can’t perform that action at this time.
0 commit comments