Build all micro/examples for release-X.X.X branches (#1683)

* Build all the examples on push to any release branch
This commit is contained in:
Dominic Wong 2020-06-04 09:32:17 +01:00
parent 74368026a5
commit f10fd4b479
2 changed files with 77 additions and 0 deletions

34
.github/workflows/micro-examples.yml vendored Normal file
View File

@ -0,0 +1,34 @@
name: Build all github.com/micro/examples
on:
push:
branches:
- 'release-**'
jobs:
build:
name: Build repos
runs-on: ubuntu-latest
steps:
- name: Set up Go 1.13
uses: actions/setup-go@v1
with:
go-version: 1.13
id: go
- name: Check out this code
uses: actions/checkout@v2
with:
path: 'go-micro'
- name: Check out code examples
uses: actions/checkout@v2
with:
repository: 'micro/examples'
path: 'examples'
- name: Build all
run: $GITHUB_WORKSPACE/go-micro/.github/workflows/scripts/build-all-examples.sh $GITHUB_SHA
working-directory: examples

View File

@ -0,0 +1,43 @@
#!/bin/bash
# set -x
function build_binary {
echo building $1
pushd $1
go build
local ret=$?
if [ $ret -gt 0 ]; then
failed=1
failed_arr+=($1)
fi
popd
}
function is_main {
grep "package main" -l -dskip $1/*.go > /dev/null 2>&1
}
function check_dir {
is_main $1
local ret=$?
if [ $ret == 0 ]; then
build_binary $1 $2
fi
for filename in $1/*; do
if [ -d $filename ]; then
check_dir $filename $2
fi
done
}
failed_arr=()
failed=0
this_hash=$1
go mod init github.com/micro/examples
go mod edit -require=github.com/micro/go-micro/v2@$1
check_dir . $1
if [ $failed -gt 0 ]; then
echo Some builds failed
printf '%s\n' "${failed_arr[@]}"
fi
exit $failed