Files
esp32-wifi-lib/.gitlab-ci.yml
2019-07-19 13:10:39 +08:00

57 lines
2.3 KiB
YAML
Executable File

stages:
- check
- deploy
check_lib_reversion:
stage: check
except:
- master
- /^release\/v/
image: $CI_DOCKER_REGISTRY/esp32-ci-env
script:
- GIT_COMMIT_ID=`git log --pretty="%s" -1 | grep -o '([0-9a-f]*)' | tail -1 | cut -c 2-8`
- echo "GIT_COMMIT_ID is "$GIT_COMMIT_ID
- test $(echo -n $GIT_COMMIT_ID | wc -c) -eq 7
- grep $GIT_COMMIT_ID libcoexist.a
- grep $GIT_COMMIT_ID libcore.a
- grep $GIT_COMMIT_ID libespnow.a
- grep $GIT_COMMIT_ID libespnow.a
- grep $GIT_COMMIT_ID libnet80211.a
- grep $GIT_COMMIT_ID libpp.a
- grep $GIT_COMMIT_ID libsmartconfig.a
- grep $GIT_COMMIT_ID-remote libnet80211.a
- test $(grep $GIT_COMMIT_ID-dirty *.a | wc -l) -eq 0
- test $(xtensa-esp32-elf-nm *.a | grep -w printf | wc -l) -eq 0
- test $(xtensa-esp32-elf-nm *.a | grep -w ets_printf | wc -l) -eq 0
- if [ -e libwps.a ]; then exit 1; fi
- if [ -e libwpa.a ]; then exit 1; fi
- if [ -e libwpa2.a ]; then exit 1; fi
push_master_to_github:
stage: deploy
only:
- master
- /^release\/v/
# when: on_success
image: espressif/esp32-ci-env
variables:
GIT_STRATEGY: clone
GITHUB_PUSH_REFS: refs/remotes/origin/release refs/remotes/origin/master
script:
- mkdir -p ~/.ssh
- chmod 700 ~/.ssh
- echo -n $GH_PUSH_KEY >> ~/.ssh/id_rsa_base64
- base64 --decode --ignore-garbage ~/.ssh/id_rsa_base64 > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- echo -e "Host github.com\n\tStrictHostKeyChecking no\n" >> ~/.ssh/config
- git remote add github git@github.com:espressif/esp32-wifi-lib.git
# What the next line of script does: goes through the list of refs for all branches we push to github,
# generates a snippet of shell which is evaluated. The snippet checks CI_BUILD_REF against the SHA
# (aka objectname) at tip of each branch, and if any SHAs match then it checks out the local branch
# and then pushes that ref to a corresponding github branch
#
# NB: In gitlab 9.x, CI_BUILD_REF was deprecated. New name is CI_COMMIT_REF. If below command suddenly
# generates bash syntax errors, this is probably why.
- eval $(git for-each-ref --shell bash --format 'if [ $CI_BUILD_REF == %(objectname) ]; then git checkout -B %(refname:strip=3); git push --follow-tags github %(refname:strip=3); fi;' $GITHUB_PUSH_REFS)