Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CI Tool : Github Action #3

Open
zaya-mc opened this issue Apr 11, 2020 · 6 comments · Fixed by #9
Open

CI Tool : Github Action #3

zaya-mc opened this issue Apr 11, 2020 · 6 comments · Fixed by #9
Assignees
Labels
question Further information is requested

Comments

@zaya-mc
Copy link
Contributor

zaya-mc commented Apr 11, 2020

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.

@zaya-mc zaya-mc added the question Further information is requested label Apr 11, 2020
@zaya-mc zaya-mc changed the title Discussion : Continuous Integration Discussion : Continuous Integration Tool Apr 11, 2020
@ahmetalncak
Copy link

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

@zaya-mc
Copy link
Contributor Author

zaya-mc commented Apr 17, 2020

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
Copy link
Contributor Author

zaya-mc commented Apr 18, 2020

@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
Copy link
Contributor

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
Copy link
Contributor Author

zaya-mc commented Apr 22, 2020

@alifiratari That's awesome. Thanks.

@zaya-mc zaya-mc linked a pull request Apr 22, 2020 that will close this issue
@alifiratari
Copy link
Contributor

#13

  • Added Coverity Scan Tools to CI workflow

@zaya-mc zaya-mc changed the title Discussion : Continuous Integration Tool CI Tool : Github Action May 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants