{"id":2050,"date":"2013-04-24T18:51:38","date_gmt":"2013-04-24T16:51:38","guid":{"rendered":"http:\/\/planetozh.com\/blog\/?p=2050"},"modified":"2013-04-24T18:53:51","modified_gmt":"2013-04-24T16:53:51","slug":"how-to-nightly-build-from-svn-repository","status":"publish","type":"post","link":"https:\/\/planetozh.com\/blog\/2013\/04\/how-to-nightly-build-from-svn-repository\/","title":{"rendered":"How-to: generate nightly builds from a SVN repository"},"content":{"rendered":"<p>As you might know, <a href=\"http:\/\/yourls.org\/\">YOURLS<\/a> development is now <a href=\"https:\/\/github.com\/YOURLS\/YOURLS\">hosted on Github<\/a>. It&#39;s now easy to download the current development snapshot, since Github provides an <tt>archive\/master.zip<\/tt>.<\/p>\n<p>But not so long ago, YOURLS dev was hosted <a href=\"http:\/\/code.google.com\/p\/yourls\/\">on Google Code<\/a>, where there is no such convenient way to download the current SVN trunk as a <tt>.zip<\/tt> archive. To generate &quot;nightly builds&quot;, I wrote this little script:<\/p>\n<div id=\"ig-sh-1\" class=\"syntax_hilite\">\n\n\t\t<div class=\"toolbar\">\n\n\t\t<div class=\"view-different-container\">\n\t\t\t\t\t\t<a href=\"#\" class=\"view-different\">&lt; View <span>plain text<\/span> &gt;<\/a>\n\t\t\t\t\t<\/div>\n\n\t\t<div class=\"language-name\">bash<\/div>\n\n\t\t\n\t\t<br clear=\"both\">\n\n\t<\/div>\n\t\n\t<div class=\"code\">\n\t\t<ol class=\"bash\" style=\"font-family:monospace\"><li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #666666;font-style: italic\">#!\/bin\/bash<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #666666;font-style: italic\"># Simple bash script to generate YOURLS nightly builds<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">&nbsp;<\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #666666;font-style: italic\"># Export in a year-month-day directory<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #007800\">PWD<\/span>=<span style=\"color: #ff0000\">&quot;\/home\/ozh\/yourls.org\/nightly-builds&quot;<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #007800\">BUILD<\/span>=$<span style=\"color: #7a0874;font-weight: bold\">&#040;<\/span><span style=\"color: #c20cb9;font-weight: bold\">date<\/span> +<span style=\"color: #000000;font-weight: bold\">%<\/span>Y-<span style=\"color: #000000;font-weight: bold\">%<\/span>m-<span style=\"color: #000000;font-weight: bold\">%<\/span>d<span style=\"color: #7a0874;font-weight: bold\">&#041;<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #c20cb9;font-weight: bold\">svn<\/span> <span style=\"color: #660033\">-q<\/span> <span style=\"color: #7a0874;font-weight: bold\">export<\/span> http:<span style=\"color: #000000;font-weight: bold\">\/\/<\/span>yourls.googlecode.com<span style=\"color: #000000;font-weight: bold\">\/<\/span>svn<span style=\"color: #000000;font-weight: bold\">\/<\/span>trunk<span style=\"color: #000000;font-weight: bold\">\/<\/span> <span style=\"color: #007800\">$PWD<\/span><span style=\"color: #000000;font-weight: bold\">\/<\/span><span style=\"color: #007800\">$BUILD<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">&nbsp;<\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #666666;font-style: italic\"># Make package and remove dir<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #7a0874;font-weight: bold\">cd<\/span> <span style=\"color: #007800\">$PWD<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #c20cb9;font-weight: bold\">zip<\/span> <span style=\"color: #660033\">-r<\/span> <span style=\"color: #660033\">-q<\/span> yourls-<span style=\"color: #007800\">$BUILD<\/span>.zip <span style=\"color: #007800\">$BUILD<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #c20cb9;font-weight: bold\">rm<\/span> <span style=\"color: #660033\">-rf<\/span> <span style=\"color: #007800\">$BUILD<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\">&nbsp;<\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #666666;font-style: italic\"># Remove old (&gt;7 days) builds<\/span><\/div><\/li>\n<li style=\"font-weight: normal;vertical-align:top\"><div style=\"font: normal normal 1em\/1.2em monospace;margin:0;padding:0;background:none;vertical-align:top\"><span style=\"color: #c20cb9;font-weight: bold\">find<\/span> <span style=\"color: #007800\">$PWD<\/span><span style=\"color: #000000;font-weight: bold\">\/*<\/span><span style=\"color: #c20cb9;font-weight: bold\">zip<\/span> <span style=\"color: #660033\">-mtime<\/span> +<span style=\"color: #000000\">7<\/span> <span style=\"color: #660033\">-exec<\/span> <span style=\"color: #c20cb9;font-weight: bold\">rm<\/span> <span style=\"color: #7a0874;font-weight: bold\">&#123;<\/span><span style=\"color: #7a0874;font-weight: bold\">&#125;<\/span> \\;<\/div><\/li>\n<\/ol>\t<\/div>\n\n<\/div>\n\n<p>Now you just need to add the script to your cron jobs and call it every night.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>As you might know, YOURLS development is now hosted on Github. It&#39;s now easy to download the current development snapshot, since Github provides an archive\/master.zip. But not so long ago, YOURLS dev was hosted on Google Code, where there is no such convenient way to download the current SVN trunk as a .zip archive. To [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[21],"tags":[5,2,359],"class_list":["post-2050","post","type-post","status-publish","format-standard","hentry","category-published","tag-bash","tag-code","tag-yourls"],"_links":{"self":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts\/2050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/comments?post=2050"}],"version-history":[{"count":9,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts\/2050\/revisions"}],"predecessor-version":[{"id":2059,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/posts\/2050\/revisions\/2059"}],"wp:attachment":[{"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/media?parent=2050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/categories?post=2050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/planetozh.com\/blog\/wp-json\/wp\/v2\/tags?post=2050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}