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

Establish CI #57

Closed
gambogi opened this issue Apr 19, 2016 · 22 comments
Closed

Establish CI #57

gambogi opened this issue Apr 19, 2016 · 22 comments
Assignees

Comments

@gambogi
Copy link
Member

gambogi commented Apr 19, 2016

Summary of issue:
We really really really should not track changes in the pdf blob.

@harlanhaskins
Copy link
Contributor

ShareLaTeX has a 'cloud compiler' that automatically recompiles changes per commit.

@mbillow
Copy link
Member

mbillow commented May 2, 2016

The problem here is compiling process of our constitution, since both documents contain references to each other. I have found countless solutions I would love to set-up but none of them can handle the way we have to compile the documents. If we combined them into one (which I would love and would make searching infinitely easier), you could consider this problem solved.

@liam-middlebrook
Copy link
Member

I think that using TravisCI would be a good solution for this, the only complication being where the constitution is stored after being compiled. We could write a script to run on san that would allow files to be PUT if a certain key was sent with them. I'm going to contact TravisCI support and see if we can get an organization-wide educational account with the premium features.

@mbillow
Copy link
Member

mbillow commented May 2, 2016

Just have Travis dump them somewhere on Filer and then symlink it to a directory on San over NFS. That way we don't have to wait for / trigger scripts.

@gambogi
Copy link
Member Author

gambogi commented May 2, 2016

Then you have a world writable file that people frequently download and open.

@gambogi
Copy link
Member Author

gambogi commented May 2, 2016

We could also just set up a cron job that runs the makefile every night or something. Doesn't need to be too fancy.

@sman591
Copy link
Member

sman591 commented May 2, 2016

Just have the CI commit the updated PDF?

@liam-middlebrook
Copy link
Member

I don't see why we would want to store them on filer either way. There's no good reason to have it dependent on NFS.

@liam-middlebrook
Copy link
Member

@sman591 I'd rather keep the binary PDF blobs out of Git in general.

@liam-middlebrook liam-middlebrook self-assigned this May 2, 2016
@mbillow
Copy link
Member

mbillow commented May 2, 2016

Why would the file be world writable? Also, you aren't going to want to run Travis on San (that's not the point of that box). So if you want it to be served from csh.rit.edu, you are going to need it on San. NFS is probably the most reliable way to do that.

@liam-middlebrook
Copy link
Member

liam-middlebrook commented May 2, 2016

TravisCI works by hooking into the Git hooks that are exposed by GitHub. Upon a new pull request or regular commit TravisCI will trigger a build event where it will compile the constitution.

After the constitution is compiled we need a place to put the PDFs. There's no reason why we can't just drop two PDF files directly on san in somewhere like /var/www/pub/constitution as opposed to dropping them on filer.

@mbillow
Copy link
Member

mbillow commented May 2, 2016

Where are you running Travis though? It shouldn't be on San and if you aren't going to have some weird syncing cron job, than it makes the most sense to transfer them over NFS. We can move the implementation discussion to Bored Room, it doesn't need to be here.

@liam-middlebrook
Copy link
Member

TravisCI is a hosted service, we don't run it locally.

@mbillow
Copy link
Member

mbillow commented May 2, 2016

I was under the impression that we were going to host it locally.

@cgonyeo
Copy link
Member

cgonyeo commented May 2, 2016

TravisCI isn't something you can host yourself unless you want to pay a lot of money.

@WillDignazio
Copy link
Member

Can we first elaborate on what problem there is with including the binary?

Our PDF's are relatively small, and while there is a consistency issue, we can trivially solve this with a commit hook for push (as opposed to a maintained server hook).

Binary diffs of this size should be no problem (tm).

@gambogi
Copy link
Member Author

gambogi commented May 2, 2016

@WillDignazio They cause unnecessary merge conflicts every time

@cgonyeo
Copy link
Member

cgonyeo commented May 2, 2016

Could we just have a cron job somewhere do a git pull && make && rsync *.pdf san.csh.rit.edu:/var/www/priv/constitution/ every midnight, and just not include the PDF on github?

(obviously this requires creating that virtualhost)

@WillDignazio
Copy link
Member

There are github commit hooks that can inform us when to do the rebuild, but imo, it's way overkill.

@gambogi
Copy link
Member Author

gambogi commented Sep 12, 2016

@ComputerScienceHouse/root-type-people Yo can we get that one liner in cron going?

@mbillow
Copy link
Member

mbillow commented Sep 12, 2016

https://constitution.csh.rit.edu/articles.pdf
https://constitution.csh.rit.edu/bylaws.pdf

Enjoy your up to date (every 12 hours [0:00 & 12:00]) constitution.
Warning: Give the CNAME time to propagate or use CSH's DNS servers.

@liam-middlebrook
Copy link
Member

:shipit:

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

No branches or pull requests

7 participants