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

Add TravisCI for validating the mount between VM and RPi #20

Merged
merged 8 commits into from
Jun 21, 2020

Conversation

seriema
Copy link
Owner

@seriema seriema commented Jun 15, 2020

Comparing TravisCI against CircleCI

Pros

  1. TravisCI allows for running containers in privileged mode, which means the VM can be mounted on the RPi for end-to-end testing.
  2. Can run on amd architecture, although it's amd64 and not amd32v7 like the RaspberryPi so it's not really useful.

Cons

  1. Lacking coordination of build steps or anything close to CircleCI's Workflows.
  2. The output is simply a huge log dump. It took a whole weekend to get the folding to look acceptable.

Summary

  • The possibility for running containers in privileged mode is the main reason. I can now fully test the flow of a user.

Using TravisCI

This PR adds Travis (e54ee00), as well as a "copy ROMs from RPi to File Share" script (f44195c) to showcase how Travis is able to mount the VM in the RPi container and validate scenarios like that. This will be fundamental for the coming features.

TODO's

  • Remove CircleCI config: I'm keeping it for a while longer as it's battle tested and I know it detects issues. I'll simply delete the config when I feel more confident in the Travis config, even though I've been running it for a few weeks on test branches.

This PR is just for convenience in the future to see what had to change in the scripts to support the merged feature.

Accept a second parameter to override the docker repo name.
The main reason is because it allows running docker containers in
privileged mode. That allows the VM to be mounted on the containerized
RPi. That mount is the connection between the user's RPi and
Retro-Cloud, so I needed a way to have that connection tested
continously to confidentely build new features. CircleCI doesn't
privileged containers, so I will be moving away from it eventually.
Similar to the one in VM. Downloads Elite for multiple platforms.

Only NES and Spectrum were detected by EmulationStation or started.
So the user can copy all their ROMs as a separate manual step because
it will only work if:
* mounting the VM worked
* the user has ROMs in ~/RetroPie/roms

The user should be ready for a long wait if they have a lot of ROMs.
This is only possible on Travis. CircleCI is left unchanged so there is a
baseline to compare with.
Exactly like the CircleCI one. Useful for making sure that every
individual commit works, and not just the last commit.
@seriema
Copy link
Owner Author

seriema commented Jun 21, 2020

The failed build is the Docker build. I've locked down the RetroPie version, but the emulators aren't possible to lock down, so they've grown apart and don't build together anymore. I'll work on the Dockerfile separately from this PR, as the existing image works fine.
https://retropie.org.uk/forum/topic/26754/installing-a-specific-version-of-retropie

@seriema seriema merged commit 7adcbd8 into develop Jun 21, 2020
@seriema seriema deleted the ci--rpi-mount-vm branch June 21, 2020 10:44
@@ -0,0 +1,50 @@
gameplan
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This file wasn't meant to be here. The auto-staging feature in Git Kraken when switching branches is really annoying...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant