Using gitlab.com to publish your website.
February 24th 2018This morning I decided that it was time to clean up this little blog.
One of my problems is updating the site, but with gitlab it is quite easy to set a hook to get it to publish the web site for me after each push.
To get each push to update our web server we create an .gitlab-ci.yml
file with the following text in it.
image: ruby:2.3
before_script:
- gem install bundler --no-ri --no-rdoc
- bundle install --jobs $(nproc) "${FLAGS[@]}"
stages:
- build
- test
- deploy
update_server:
stage: deploy
script:
- rake update
only:
- master
tags:
- docker
And in my Rakefile I have
require "net/http"
require "uri"
uri = URI.parse('https://www.gam3.net/cgi-bin/update_blog?secret=' + ENV['SECRET'])
desc "Update the web server."
task :update do
res = Net::HTTP.get_response(uri)
puts res.body
end
Now after every push an endpoint is called by gitlab. By adding more code to the .gitlab-ci.yml
file I can have it test the code before it called the endpoint, or only update the server when a particular type or tag is pushed.
On the server side I just hava simple cgi-bin script that runs 'git pull' and restarts apache when it is accessed.
https://gitlab.com/gam3/myBlog