OpenIoTAcademy / EmbeddedTemplate

Template Project For Embedded Projects
2 stars 2 forks source link

CI Tool : Github Action #3

Open zaya-mc opened 4 years ago

zaya-mc commented 4 years ago

The requirements could be like below 1 - Easy to use 2 - Fully Github Integration (Needs to block the Pull Requests which do not pass all CI tests) 3 - Free

Jenkins is widely used for CI but it is awful so we can use Travis-CI here which is fully integrated with Github and free for Open-Source Projects and widely used by open source projects too.

ahmetalncak commented 4 years ago

Never used Travis before but I'm OK with it.

zaya-mc commented 4 years ago

Travis CI basically creates a Virtual Machine, according to our Travis File, it clones our repository, downloads all required tools such as compilers, and calls our makefile to run tests. If there is an error, it blocks the pull request in the GitHub. In the GitHub Pull Request Page, you see a window which shows all whether tests pass or not. For all of these, all we need; creating a YAML file. And it handles everything in its servers so there is no need to set up any machine(In Jenkins, we have to set up a machine)

zaya-mc commented 4 years ago

@alifiratari @volkanunal Could you check does Github Action create a virtual machine()? If so, can we choose the OS in VM? If it is only Linux, can we run any Linux command to install required scripts?

For example; in the Travis-CI, It was cloning the repo automatically, but I was installing some tools which were required for tests like below;

- sudo apt-get update
- sudo apt-get install splint
- sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded
- sudo apt-get update -qq
- sudo apt-get install gcc-arm-none-eabi --force-yes

Can we do that?

The ideal CI approach should be we should be able to run the same tests in our local and the server(Pull Request).

Herein we need to use the same command to run all tests in both local and remote. Example; make check_all

alifiratari commented 4 years ago

Added blank CI project --> pull request #9

It is posibble. add the commands to end of .github/workflows/blank.yml

  • name: Install compiler and splint run: | echo Compiling.. sudo apt-get update sudo apt-get install splint sudo add-apt-repository -y ppa:terry.guo/gcc-arm-embedded sudo apt-get update -qq sudo apt-get install gcc-arm-none-eabi --force-yes
  • name: Run makefile run: | echo Compiling.. make check_all
zaya-mc commented 4 years ago

@alifiratari That's awesome. Thanks.

alifiratari commented 4 years ago

13