Commit Graph

164 Commits

Author SHA1 Message Date
He Yin Ling 1bd9859c08 CI: add test jobs for BLE cases 2017-06-27 10:35:39 +08:00
Anton Maklakov 14125f3361 CI: Add CI options to use more attempts in some transfer situations 2017-06-19 14:09:48 +08:00
Anton Maklakov e334b7267e CI: Minor changes in code formatting and cleanup 2017-06-19 11:52:43 +08:00
Anton Maklakov 3f8e58a637 CI: Put in order the job dependences 2017-06-19 11:52:43 +08:00
He Yin Ling 4d4b0b646d CI: check if internal submodule synced to GH
See MR !834
2017-06-19 11:52:43 +08:00
Anton Maklakov 055c7420fd CI build_ssc: Workaround for the SSC build error 2017-06-19 09:23:24 +08:00
Ivan Grokhotkov 81f98c0a77 Merge branch 'test/nvs_compatible_test' into 'master'
test: add WIFI NVS compatible test case

See merge request !812
2017-06-13 21:32:50 +08:00
Anton Maklakov c5b5dd88f9 CI: Build examples in parallel
Now you can create several 'build_examples_N' jobs
    in the .gitlab-ci.yaml and get parallel execution.
2017-06-09 14:15:43 +08:00
Anton Maklakov a7dde817f9 CI: Use the environment variable MAKEFLAGS for 'make' instead of the in-place '-j' option. 2017-06-09 13:24:39 +08:00
Anton Maklakov 450b9a4e5c CI: Assign a common variable 2017-06-09 13:24:39 +08:00
Anton Maklakov 6606c51728 CI: Fix build_examples to cover the deep hierarchy examples
Now we have 57 building examples against 49 before.

    Also, a short message prints at the end of the job for found warnings.
2017-06-09 13:24:39 +08:00
Anton Maklakov 5f49b04428 CI: Fix incorrect path to the artifacts in build_examples 2017-06-09 13:24:39 +08:00
He Yin Ling 2e7f6a2247 test: add NVS compatible test case and CI job 2017-06-04 10:29:15 +08:00
He Yin Ling 592b8a4325 CI: add one more UT runner 2017-06-03 11:38:52 +08:00
jack fc130fba86 fix bug that files missing commit in MR 773 2017-05-31 19:37:39 +08:00
Ivan Grokhotkov 972d1d9242 Merge branch 'feature/ci_test_config_autogen' into 'master'
CI: auto generate configs for test jobs

Currently CI test jobs are static configured by several pre-generated config files.
This approach have several disadvantages:

1. not flexible to select test cases to run, which is important feature of @bot
2. difficult to update test as we need to pre-generate quite a lot files
3. need to maintain extra config files in IDF
4. not flexible to support new test apps or chips, can't use some new features of test bench

Therefore we'll add assign_test stage between build and test, to generate configs for test jobs.

See merge request !738
2017-05-19 11:56:45 +08:00
Angus Gratton 51f20c6e7c gen_esp32part: Run unit tests on host as part of gitlab-ci 2017-05-12 16:28:41 +10:00
He Yin Ling 5d4783ee07 CI: update CI config file for auto assign test:
we'll now assign cases to test jobs in assign_test_case job instead of
static job config file.
2017-05-08 13:33:04 +08:00
He Yin Ling 2b273388dd CI: save download config in CI build jobs:
IDF built app download config may change with some modification.
save the download configs for built APP in build stage.
then we can use the correct download config in test stage.
2017-05-02 13:17:56 +08:00
Anton Maklakov 69bf14360d ci: Fix the incorrect path 2017-04-27 11:35:17 +08:00
Anton Maklakov a2332bc18f ci: A config generator doesn't using anymore 2017-04-27 11:32:25 +08:00
Anton Maklakov 3531af91a1 ci: Delete the unused variable 2017-04-27 11:32:25 +08:00
Anton Maklakov 2ad9cd36e2 ci: Reorder the clauses for more convenience 2017-04-27 11:32:25 +08:00
Ivan Grokhotkov b540322dc1 Merge branch 'feature/wear_levelling' into 'master'
wear levelling

This MR adds wear levelling component. It presents an interface similar to the interface of spi_flash and esp_partition. Inside, it stores data inside a partition to in a way that reduces worst case number of erase cycles for any given sector.

Also included are APIs similar to the ones provided for SDMMC to mount FAT filesystem on top of the wear levelling partition. A simple example shows how this API can be used.

Ref TW10338.

See merge request !567
2017-04-25 19:46:11 +08:00
Angus Gratton 7b0e6e2fc4 ci: Build with V=0
BATCH_BUILD implies V=1, but SSC produces a *lot* of log output in verbose mode.

For now, disable setting V=1 for all CI build modes.
2017-04-20 13:58:30 +10:00
Ivan Grokhotkov 3a39475d20 wear_levelling: run host side test in CI 2017-04-17 11:01:18 +08:00
Ivan Grokhotkov 81f71522b6 Merge branch 'feature/parse_unit_test_cases_from_build_files' into 'master'
CI: modify unit test parser to get unit test cases from build files



See merge request !545
2017-04-10 12:20:00 +08:00
He Yin Ling 81becd5e66 CI: check if commit history need revise 2017-04-10 09:42:49 +08:00
He Yin Ling 678a7b53f7 CI: revise unit test parser 2017-04-06 19:09:16 +08:00
Ivan Grokhotkov 37304aba2d Merge branch 'feature/ci_tags_release_branches' into 'master'
CI support for testing & deploying release tags & branches

For CI testing & deployment of release branches:
* Test release tags as well as branches
* Swap gitlab submodule URLs to github when testing release tags or branches.

These changes are already pushed to the release/v2.0 branch.

See merge request !604
2017-03-24 15:55:15 +08:00
Ivan Grokhotkov d96b8c317a ci: allow passing Hub account or registry name from the environment 2017-03-22 21:59:40 +08:00
Angus Gratton 818d1de771 ci: Swap github/gitlab submodules for release branches & tags also 2017-03-22 21:23:12 +08:00
Angus Gratton 099b5552c4 ci: Also run deployment steps for tags of form vX.Y (with optional -suffix) 2017-03-22 21:23:07 +08:00
Angus Gratton 364476c1cd ci: Fix master branch being pushed to master
Previous change in 8b6993f7 doesn't work if branch exists locally.
2017-03-17 12:02:46 +08:00
Angus Gratton 8b6993f7aa build/CI: Push all allocated release branches to github
Previously CI deployment only pushed to master.
2017-03-15 17:36:41 +08:00
Angus Gratton da660b234c AWS IoT Device SDK Support
Use device cert/key embedded in firmware, or loaded from filesystem.
2017-03-13 17:23:29 +08:00
Ivan Grokhotkov abe8e40597 ci: fix release branch being pushed into master
Also fix variable quoting issue in link check build.
2017-03-04 18:17:59 +08:00
Ivan Grokhotkov c01dff8263 Merge branch 'feature/run_test_on_release_branches' into 'master'
CI: support running CI test on release branches

Patches will be cherry-picked to release branches after it's released. Therefore we need to run test jobs with the same strategy as master.

See merge request !551
2017-03-04 15:06:37 +08:00
Angus Gratton f29768c404 Build system: Add new BATCH_BUILD flag to disable interactive parts of the build
Mostly useful for Eclipse (where accidentally running interactive
config hangs the build), but also good for CI and other automated
build systems.
2017-02-22 11:59:37 +11:00
He Yin Ling 732a5fd0b2 CI: get test env config from gitlab
Previous design was put test env config on local runners. It's not easy
to manage as test runners count growing. Now we'll put config files for
test runners to a Gitlab repository. Test runners will get its config
from Gitlab every time before running.
2017-02-02 21:59:00 +08:00
He Yin Ling d193424ae8 CI: add job to check build esp-at in esp-idf 2017-01-24 15:52:07 +08:00
Ivan Grokhotkov fbe89a0833 Merge branch 'feature/deploy_tags' into 'master'
ci: deploy code and docs for tags

Currently deploy happens only for the master branch.
This change is needed to support tags in release branches.

See merge request !458
2017-01-20 19:38:02 +08:00
Ivan Grokhotkov b4a29f5240 ci: deploy code and docs for release branches
Currently deploy happens only for the master branch.
This change is needed to support release branches.
2017-01-20 18:45:21 +08:00
Ivan Grokhotkov 632bd0bb4f Merge branch 'feature/docs_gh_link_roles' into 'master'
docs: use custom roles to generate GitHub links

This change replaces direct links to GitHub master branch with
auto-generated links using docutils custom roles.
These auto-generated links point to the tree or blob for the git commit
ID (or tag) of the repository. This is needed to ensure that links don’t
become broken when files in master branch are moved around or deleted.

The following roles are introduced:

```
- :idf:`path` - points to directory inside ESP-IDF
- :idf_blob:`path` - points to file inside ESP-IDF
- :idf_raw:`path` - points to raw view of the file inside ESP-IDF
- :component:`path` - points to directory inside ESP-IDF components dir
- :component_blob:`path` - points to file inside ESP-IDF components dir
- :component_raw:`path` - points to raw view of the file inside ESP-IDF
  components dir
- :example:`path` - points to directory inside ESP-IDF examples dir
- :example_blob:`path` - points to file inside ESP-IDF examples dir
- :example_raw:`path` - points to raw view of the file inside ESP-IDF
  examples dir
```

A check is added to the CI build script, which searches RST files for
presence of hard-coded links (identified by tree/master, blob/master,
or raw/master part of the URL).
This check can be run manually: cd docs && make gh-linkcheck

Additionally, Sphinx linkcheck build type is used to create new CI test,
which check for broken links. This test has to be triggered explicitly,
because including it in normal build process (when the commit is not yet
deployed to Github) will not work. It can be triggered in a regular
fashion using a combination of cron and Curl, similar to stress tests.

See merge request !455
2017-01-20 17:47:34 +08:00
Ivan Grokhotkov 15072028c4 docs: use custom roles to generate GitHub links
This change replaces direct links to GitHub master branch with
auto-generated links using docutils custom roles.
These auto-generated links point to the tree or blob for the git commit
ID (or tag) of the repository. This is needed to ensure that links don’t
become broken when files in master branch are moved around or deleted.

The following roles are introduced:

- :idf:`path` - points to directory inside ESP-IDF
- :idf_blob:`path` - points to file inside ESP-IDF
- :idf_raw:`path` - points to raw view of the file inside ESP-IDF
- :component:`path` - points to directory inside ESP-IDF components dir
- :component_blob:`path` - points to file inside ESP-IDF components dir
- :component_raw:`path` - points to raw view of the file inside ESP-IDF
  components dir
- :example:`path` - points to directory inside ESP-IDF examples dir
- :example_blob:`path` - points to file inside ESP-IDF examples dir
- :example_raw:`path` - points to raw view of the file inside ESP-IDF
  examples dir

A check is added to the CI build script, which searches RST files for
presence of hard-coded links (identified by tree/master, blob/master,
or raw/master part of the URL).
This check can be run manually: cd docs && make gh-linkcheck

Additionally, Sphinx linkcheck build type is used to create new CI test,
which check for broken links. This test has to be triggered explicitly,
because including it in normal build process (when the commit is not yet
deployed to Github) will not work. It can be triggered in a regular
fashion using a combination of cron and Curl, similar to stress tests.
2017-01-20 17:22:47 +08:00
He Yin Ling 5305842763 CI: fix merge error on test report job
the variable used to save report result is changed by merge error
2017-01-19 23:37:12 +08:00
He Yin Ling 3c28283377 CI: fix bug that test result always fail
the path of module definition file from unit test is not correct
2017-01-19 18:59:50 +08:00
antti 0501507d6b CI: add script for parsing unit test cases for CI from test files
Add python script that parses list of unit test cases for CI from component test folder

Modify .gitlab-ci.yml to run this script as part of build unit tests stage
2017-01-18 17:08:20 +08:00
Yinling 16de41941e CI: fix bug that test report job failed 2017-01-03 14:07:00 +08:00
Ivan Grokhotkov 835fa31d56 Merge branch 'feature/save_and_commit_CI_test_result' into 'master'
Feature/save and commit ci test result



See merge request !255
2016-12-27 12:23:38 +08:00
Yinling a1915f7f87 use gitlab repo for bt lib on non master barnch
same as wifi lib, some bt lib might not be pushed to github yet for
developping branches

replace gitlab server address with variable
2016-12-23 20:48:34 +08:00
Yinling 57817f7c53 generate test result and commit to CI-test-result:
1. config git user name before commit
2. continue committing test result for failed jobs
3. update test result repository path
4. change escape key word in branch name, use '___' to escape key word '/' in report file name
2016-12-22 10:36:13 +08:00
Yinling bf2a568924 remove not used code as `rm -rf` always return 0 2016-12-12 09:31:06 +08:00
Yinling a241197067 handle the case that artifacts do not exist 2016-12-06 19:01:20 +08:00
Yinling ec40053720 add supported stress test cases to CI 2016-12-06 15:41:02 +08:00
Ivan Grokhotkov c17ee8a914 Merge branch 'bugfix/unit_test_run' into 'master' 2016-11-24 18:29:32 +08:00
Ivan Grokhotkov 1bcd90d45d Merge branch 'feature/system_apis' into 'master'
system_* APIs cleanup

This changeset is mostly about cleaning up `system_*` APIs and moving them from libcore. It has dragged a few more changes along, however.

- `system_deep_sleep` deprecated, new name is `esp_deep_sleep`
- `system_efuse_read_mac` deprecated, new name is `esp_efuse_read_mac`
- `system_read/write_rtc_mem` removed (reason: we use linker to place code/data into RTC memory now)
- `system_get_sdk_version` deprecated. Returns "master" for now. Support for compile-time and runtime version detection will be done in a separate MR.
- `system_get_time` and variations have been deprecated. `gettimeofday` should be used instead.
- `system_restart` deprecated, new name is `esp_restart`. Rewritten code to work correctly from any of the cores.
- `system_restore` deprecated, `esp_wifi_restore` should be used instead.
- `system_get_rst_info` removed (it wasn't in a header file)
- RTC library has been updated to latest version
- Logging output from `libfoo.a` goes through `foo_printf` function now, where `foo ` is any of the library names. For libraries other than rtc and phy, this is a temporary measure, until we finish switching to esp_log library and clean up all uses of printf/ets_printf.
- ESP-IDF build will fail if any of the libraries have printf/ets_printf reference.
-  Added `esp_random` function which gets values from HW RNG. I have added code which makes sure the value is not polled too often (allows at least 16 APB cycles). Also added a header file for HW RNG (just one register).
- Moved random number generation functions used by wpa library into wpa_supplicant component.

See merge request !234
2016-11-24 18:22:50 +08:00
Ivan Grokhotkov 9ccb104895 CI: fix unit test artifact path 2016-11-23 15:43:14 +08:00
Ivan Grokhotkov df6edb50e9 implement esp_deep_sleep, fix build issues 2016-11-22 21:54:49 +08:00
antti d390449371 add unit tests to esp-idf
rename nvs host test folder, modify .gitlab-ci.yml

remove unit-test-app build

re-format unit test files

remove extra newlines in project.mk

some refactoring for unit test part in project.mk

add build files of unit-test-app in gitignore

add README.md for unit test app

correct headings in README.md

remove files and make minor tweaks in unit test app

update .gitlab-ci.yml to use unit test app

delete unused lines in component_wrapper.mk

delete periph_i2s.h and lcd test

add text floating point in components/esp32/test/Kconfig

correct idf test build paths in .gitlab-ci.yml
2016-11-22 14:45:50 +08:00
Ivan Grokhotkov 311a4cd678 Merge branch 'feature/support_build_multiple_bin' into 'master'
support build multiple bin for SSC

We need to build multiple SSC bin with different feature configs to do test. 

For example, we need different SSC bins to test socket API blocking/non-blocking usage with same test cases.

SSC has a same branch to support build all pre-configured bins using `./gen_misc_ng.sh`. It will copy all bins to `./SSC/ssc_bin/`.

This MR will change the artifacts path for `build_ssc` job and the `BIN_PATH` for test jobs using SSC.

See merge request !219
2016-11-21 10:58:58 +08:00
Ivan Grokhotkov 139fdcb9ec Merge branch 'feature/save_logs_to_test_report' into 'master'
save logs as test_report artifacts

save all logs as test report artifacts. 

Testers only need to download artifacts for test report to analysis test result.

See merge request !217
2016-11-18 20:56:54 +08:00
Yinling b0ca2feabc support build multiple bin for SSC 2016-11-17 14:02:46 +08:00
Yinling 9e6e6b8ff6 save logs as test_report artifacts 2016-11-17 13:45:53 +08:00
Ivan Grokhotkov 13d4734399 docs: fix Doxygen warnings, fail CI build on Doxygen warnings 2016-11-16 22:44:22 +08:00
Ivan Grokhotkov d12078b692 Revert "Merge branch 'feature/ci_checkout_same_branch_for_submodule' into 'master'"
This reverts merge request !178
2016-11-08 11:55:48 +08:00
Ivan Grokhotkov 0762b050dd Merge branch 'feature/integrate_unit_test_to_ci' into 'master'
integrate unit test to CI



See merge request !167
2016-11-07 21:17:08 +08:00
Yinling 522f83ae3d remove unnecessary "git fetch" and add echo submodule path 2016-11-06 22:58:31 +08:00
Yinling 3051c74488 No need to deinit submodules as use clean clone by config 2016-11-06 22:53:23 +08:00
Yinling d093dcbbb7 try to checkout same branch for submodule in CI jobs 2016-11-06 22:43:12 +08:00
Ivan Grokhotkov 0df0d74d5d Merge branch 'bugfix/only_deploy_when_test_pass' into 'master'
fix bug that deploy when test failed:

test report will be a single stage. The result of test report will be calculated from the result of all test jobs in test stage. So it will only deploy when all test job passed.

See merge request !140
2016-11-01 22:27:37 +08:00
Ivan Grokhotkov 4f71d741ec docs: deploy built docs 2016-11-01 22:21:46 +08:00
Yinling c67ac340c7 use correct template for unit test jobs 2016-11-01 20:33:23 +08:00
Ivan Grokhotkov 1d3626c119 docs: fix typos, build docs with gitlab CI 2016-11-01 20:08:29 +08:00
Yinling 5784586041 integrate unit test to CI 2016-11-01 19:30:42 +08:00
Yinling 28d83e766a fix bug that deploy when test failed:
test report will be a single stage. The result of test report will be calculated from the result of all test jobs in test stage. So it will only deploy when all test job passed.
2016-10-17 17:03:54 +08:00
Ivan Grokhotkov 1cd572c7b9 Add test for compiling in release mode, fix warnings and errors which appeared 2016-10-17 13:40:10 +08:00
Yinling 5e0a9bfcf2 remove debug command "ls" in test report job 2016-10-12 11:48:24 +08:00
Yinling e9199a0320 should set TEST_CASE_FILE_PATH before CONFIG_FILE use it 2016-10-12 11:44:54 +08:00
Yinling b72d22041c rename components/test to idf_test:
1. test will be categorized by test level
2. add test level as attribute to test cases
3. will select TestCaseScript by the test cases added to CI (currently no test case uses test case script)
4. adding test level to test jobs
5. update .gitlab-ci.yml, each job need to set its test case file path
6. update .gitlab-ci.yml, test case path for test report is changed to idf_test
2016-10-12 11:17:56 +08:00
Angus Gratton 685c1084ba Reinstate build_examples gitlab CI case
Had been removed in 42e31116
2016-10-11 17:23:46 +11:00
Yinling 1447cd4136 fix issue on test report job:
1. test report job should be put to deploy stage, otherwise it can't get logs from test stage
2. allow test fail so that test report job will be executed for failed test
2016-10-11 17:23:46 +11:00
He Yin Ling e5b8854d96 can not put test report to deploy stage, otherwise if test fails it won't generate test report. 2016-10-11 17:23:46 +11:00
Yinling 19ca66c968 add job to generate test report 2016-10-11 17:23:46 +11:00
Yinling 12fa7472ea night jobs should exit succeed if no need to run 2016-10-11 17:23:46 +11:00
Yinling 9b72441b45 Test cases use libpcap or libnet are not CI ready now:
1. It need rebuild native lib
2. require root permission
2016-10-11 17:23:46 +11:00
Yinling 4929534448 add gitlab key in test template job 2016-10-11 17:23:46 +11:00
He Yin Ling d7db3e6a35 build SSC should also use variable for server name 2016-10-11 17:23:46 +11:00
Yinling 5ba6c1b1b7 sync test config from test bench:
1. night jobs should exit without error if not triggered
2. remove get wifi connect status cases from IDF
3. use Env tag to check if test environment is special
2016-10-11 17:23:45 +11:00
Yinling 59b35eb16a sync several changes from auto_test_script:
1. use variable for gitlab server
2. add LOCAL_ENV_CONFIG_PATH to template
2. update jobs with feature "allow fail"
2016-10-11 17:23:45 +11:00
Yinling 745ecef263 auto_test_script will be cloned from gitlab 2016-10-11 17:23:45 +11:00
Yinling e2dd6ebcf0 revise .gitlab-ci.yml:
1. remove duplicated code
2. fix path error for config file
2016-10-11 17:23:45 +11:00
Yinling 2fe759ce1d update CI config file:
1. add night job define (need to set variable in trigger to run night jobs)
2. move auto generated part to the end of file
3. add auto generated CI jobs
2016-10-11 17:23:28 +11:00
Jeroen Domburg 7bdcafe553 Also push relevant tags over 2016-09-30 18:06:41 +08:00
Angus Gratton de76546227 Build examples out-of-tree as part of CI process 2016-09-27 12:06:54 +10:00
Ivan Grokhotkov 123788c1ab gitlab-ci: build SSC with matching branch name, if available 2016-09-26 14:17:31 +08:00
Ivan Grokhotkov d9338e64e5 gitlab-ci: allow running tests for branches, triggered via API 2016-09-18 23:12:50 +08:00
Ivan Grokhotkov 7fade89fb6 Merge branch 'bugfix/github_deploy' into 'master'
fix deploy to GitHub

Previous change to gitlab-ci.yml moved setting of Gitlab ssh key to global before_script.
This together with the fact that we used `echo >>` instead of `echo >` to write to `id_rsa_base64` file caused wrong key to be used while pushing to GitHub.
Therefore:
- don't run default before_script before push_master_to_github job
- replace echo >> with echo > to avoid mistakes in the future

See merge request !82
2016-09-15 14:08:35 +08:00
Ivan Grokhotkov d7f7c36af0 gitlab-ci: fix setting GitHub deploy key
- don't run default before_script before push_master_to_github job
- replace echo >> with echo > to avoid mistakes in the future
2016-09-13 21:24:57 +08:00
Wu Jian Gang b56098a612 Merge remote-tracking branch 'origin/master' into feature/mbedtls 2016-09-13 16:31:48 +08:00