We'll soon have Travis configs (#22636 (moved)), so we should also add a .gitlab-ci.yml or something so GitLab's continuous integration will do automated builds for oniongit and gitlab.com forks (and merge requests).
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information
Child items ...
Show closed items
Linked items 0
Link issues together to show that they're related.
Learn more.
We'll need some VMs to setup runners on, and the GitLab official runner implementation is written in Go (so it might be a good idea to have an ansible script for deploying the VMs, since Go is a huge pain to set up on Debian).
I can have VM deployed with docker as runner. I have a docker server VM that can do this for you guys. I can start to do some tests and send a patch with a .gitlab-ci that you can evaluate if you want.
Runs two task every time something is pushed to master or a branch. The first task test and build the branch. The second task merge updates from torgit.
It's just a test, so I thought it was better to show it to you instead of sending over a merge request. The reason behind this is that you might want to customise your tasks differently and I only wanted to show what it can be done.
To sync the oniongit repo with the tor git repo you need to setup a key in oniongit w write access to the oniongit repo (so that it can push changes).
I can setup a number of shared or dedicated runners that can be used to build and test the repositories and branches that you need.
We shouldn't merge this gitlab-ci.yml. This is an example of what can be done regarding updating the master branch and running build and tests.
We should create a gitlab-ci.yml for the tor repository if we want to merge something that work. But before doing anything like that I should now what we want:
Do we want something that just sync master?
Do we want something that also builds and runs tests?
When we fetch the repository to sync master what would be the best strategy to avoid loosing data? In the example I am running a pull -Xtheirs but maybe we do not want this.
I think it's OK to just mirror the repository (git push --mirror etc.). (I think gitlab.com does this for its repository syncing.) I think nobody should be pushing changes to oniongit directly, so forced updates should be fine. I don't know whether it would delete the special gitlab refs for merge requests though.
I'm not very familiar with what this implies: ssh-add <(echo "$DEPLOY_KEY") that is I doubt anyone can just control that env variable? Giving commit access to network/tor.git to anyone would be bad :S...
The DEPLOY_KEY variable is just a name of a ssh key that is authorised to push to oniongit master. That key has to be stored in oniongit and can be changed by a master or owner of the repository. You can check: https://docs.gitlab.com/ce/ssh/README.html#deploy-keys for more info.