Commit 390d56f7 authored by John's avatar John

Site updated: 2018-11-02 13:36:49

parent 7d113214
...@@ -19,7 +19,7 @@ ...@@ -19,7 +19,7 @@
<meta property="og:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…"> <meta property="og:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…">
<meta property="og:locale" content="en"> <meta property="og:locale" content="en">
<meta property="og:image" content="http://blog.thebestjohn.com/images/gitlabrunner/runner.png"> <meta property="og:image" content="http://blog.thebestjohn.com/images/gitlabrunner/runner.png">
<meta property="og:updated_time" content="2018-11-02T13:30:51.821Z"> <meta property="og:updated_time" content="2018-11-02T13:35:56.669Z">
<meta name="twitter:card" content="summary"> <meta name="twitter:card" content="summary">
<meta name="twitter:title" content="Setting up Hexo Auto-deploy from Gitlab"> <meta name="twitter:title" content="Setting up Hexo Auto-deploy from Gitlab">
<meta name="twitter:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…"> <meta name="twitter:description" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I…">
...@@ -297,10 +297,10 @@ ...@@ -297,10 +297,10 @@
<table> <table>
<tr> <tr>
<td class="gutter"> <td class="gutter">
<pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br></pre> <pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br></pre>
</td> </td>
<td class="code"> <td class="code">
<pre><span class="line"><span class="attr">before_script:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">'which ssh-agent || ( apt-get update -y &amp;&amp; apt-get install openssh-client -y )'</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">mkdir</span> <span class="bullet">-p</span> <span class="string">~/.ssh</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">chmod</span> <span class="number">700</span> <span class="string">~/.ssh</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">eval</span> <span class="string">$(ssh-agent</span> <span class="bullet">-s)</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">echo</span> <span class="bullet">-e</span> <span class="string">"$SSH_CONFIG"</span> <span class="string">&gt; ~/.ssh/config</span></span><br><span class="line"><span class="string"> - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - &gt; /dev/null</span></span><br><span class="line"><span class="string"> </span></span><br><span class="line"><span class="string"> - 'nvm --version|| curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash'</span></span><br><span class="line"><span class="string"> - 'export NVM_DIR="$HOME/.nvm"'</span></span><br><span class="line"><span class="string"> - '[ -s "$NVM_DIR/nvm.sh" ] &amp;&amp; \. "$NVM_DIR/nvm.sh"'</span></span><br><span class="line"><span class="string"> - 'npm -v || nvm install --lts'</span></span><br><span class="line"><span class="string"> </span></span><br><span class="line"><span class="string"> - echo $PATH</span></span><br><span class="line"><span class="string"> - npm install -g hexo-cli # Install Hexo itself</span></span><br><span class="line"><span class="string"> - npm install # Install Hexo modules and dependencies</span></span><br><span class="line"><span class="string"> - npm ls --depth 0 || true #List all the plugins</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"></span><span class="attr">pages:</span></span><br><span class="line"><span class="attr"> cache:</span></span><br><span class="line"><span class="attr"> paths:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">node_modules/</span></span><br><span class="line"> </span><br><span class="line"><span class="attr"> script:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">git</span> <span class="string">config</span> <span class="bullet">--global</span> <span class="string">user.email</span> <span class="string">"[email protected]"</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">git</span> <span class="string">config</span> <span class="bullet">--global</span> <span class="string">user.name</span> <span class="string">"John"</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">clean</span> <span class="comment">#clean up all the files, we want a full build!</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">generate</span> <span class="bullet">--debug</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">deploy</span> <span class="comment"># This will use the hexo git deploy method.</span></span><br><span class="line"><span class="attr"> artifacts:</span></span><br><span class="line"><span class="attr"> paths:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">public</span> <span class="comment">#Let's also compress our output and re-upload as an artifact</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">debug.log</span> <span class="comment">#As well as a log in case anything goes wrong.</span></span><br><span class="line"><span class="attr"> only:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">master</span></span><br></pre> <pre><span class="line"><span class="attr">before_script:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">'which ssh-agent || ( apt-get update -y &amp;&amp; apt-get install openssh-client -y )'</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">mkdir</span> <span class="bullet">-p</span> <span class="string">~/.ssh</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">chmod</span> <span class="number">700</span> <span class="string">~/.ssh</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">eval</span> <span class="string">$(ssh-agent</span> <span class="bullet">-s)</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">echo</span> <span class="bullet">-e</span> <span class="string">"$SSH_CONFIG"</span> <span class="string">&gt; ~/.ssh/config</span></span><br><span class="line"><span class="string"> - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - &gt; /dev/null</span></span><br><span class="line"><span class="string"> </span></span><br><span class="line"><span class="string"> - 'nvm --version|| curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.11/install.sh | bash'</span></span><br><span class="line"><span class="string"> - 'export NVM_DIR="$HOME/.nvm"'</span></span><br><span class="line"><span class="string"> - '[ -s "$NVM_DIR/nvm.sh" ] &amp;&amp; \. "$NVM_DIR/nvm.sh"'</span></span><br><span class="line"><span class="string"> - 'npm -v || nvm install --lts'</span></span><br><span class="line"><span class="string"> </span></span><br><span class="line"><span class="string"> - echo $PATH</span></span><br><span class="line"><span class="string"> - npm install -g hexo-cli # Install Hexo itself</span></span><br><span class="line"><span class="string"> - npm install # Install Hexo modules and dependencies</span></span><br><span class="line"><span class="string"> - npm ls --depth 0 || true #List all the plugins</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="string"></span><span class="attr">pages:</span></span><br><span class="line"><span class="attr"> cache:</span></span><br><span class="line"><span class="attr"> paths:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">node_modules/</span></span><br><span class="line"> </span><br><span class="line"><span class="attr"> script:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">git</span> <span class="string">config</span> <span class="bullet">--global</span> <span class="string">user.email</span> <span class="string">"[email protected]"</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">git</span> <span class="string">config</span> <span class="bullet">--global</span> <span class="string">user.name</span> <span class="string">"John"</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">clean</span> <span class="comment">#clean up all the files, we want a full build!</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">git</span> <span class="string">clone</span> <span class="string">[email protected]:TheBestJohn/blog.git</span> <span class="string">./.deploy_git</span> <span class="comment">#Checkout current build so we have continuation</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">generate</span> <span class="bullet">--debug</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">hexo</span> <span class="string">deploy</span> <span class="comment"># This will use the hexo git deploy method.</span></span><br><span class="line"><span class="attr"> artifacts:</span></span><br><span class="line"><span class="attr"> paths:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">public</span> <span class="comment">#Let's also compress our output and re-upload as an artifact</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">debug.log</span> <span class="comment">#As well as a log in case anything goes wrong.</span></span><br><span class="line"><span class="attr"> only:</span></span><br><span class="line"><span class="bullet"> -</span> <span class="string">master</span></span><br></pre>
</td> </td>
</tr> </tr>
</table> </table>
...@@ -318,9 +318,15 @@ ...@@ -318,9 +318,15 @@
<li>Installing all the packages we need for our blog.</li> <li>Installing all the packages we need for our blog.</li>
</ul> </ul>
<h4 id="pages"><a href="#pages" class="headerlink" title="pages"></a>pages</h4> <h4 id="pages"><a href="#pages" class="headerlink" title="pages"></a>pages</h4>
<p>We’ve called our job “pages” here. You could write anything here and that’s what the job bould be named. In the “script” part of this, we’re configuring our git user, running a cleanup of any files left around, and then generating our blog <p>We’ve called our job “pages” here. You could write anything here and that’s what the job bould be named. In the “script” part of this, we’re:</p>
with the debug setting. This can be useful for figuring out why things aren’t working with your site. Lastly we’re running a deploy which we set up in the hexo <code>._config.yml</code> file. Artifacts refer to files that get saved when <ul>
a job completes and are sent back to the repo as a file. Here, we basically copy the public directory and the debug log. This I’ll be using for something in another future post. </p> <li>configuring our git user</li>
<li>running a cleanup of any files left around.</li>
<li>Checking out our most recent build</li>
<li>Generating our blog with the debug setting. (This can be useful for figuring out why things aren’t working with your site.)</li>
<li>Running a deploy which we set up in the hexo <code>._config.yml</code> file. </li>
</ul>
<p>Artifacts refer to files that get saved when a job completes and are sent back to the repo as a file. Here, we basically copy the public directory and the debug log. This I’ll be using for something in another future post. </p>
<h2 id="Using-it"><a href="#Using-it" class="headerlink" title="Using it."></a>Using it.</h2> <h2 id="Using-it"><a href="#Using-it" class="headerlink" title="Using it."></a>Using it.</h2>
<p>But really, I don’t want to have it build every commit… Sometimes I’m just editing drafts and literally nothing will change on the frontend. Well as of right now you need to add <code>[ci-skip]</code> to the commit message for that to happen. <p>But really, I don’t want to have it build every commit… Sometimes I’m just editing drafts and literally nothing will change on the frontend. Well as of right now you need to add <code>[ci-skip]</code> to the commit message for that to happen.
Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits" Gitlab just recently started supporting push options. These allow you to pass options to your repo without fouling up your commit messages with a soup of tags and variables. There’s ongoing work in <a href="https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/15643/commits"
...@@ -358,7 +364,7 @@ ...@@ -358,7 +364,7 @@
})(); })();
</script><noscript>Enable JavaScript to see comments.</noscript> </script><noscript>Enable JavaScript to see comments.</noscript>
<!-- Meta Tags for Structured Data--> <!-- Meta Tags for Structured Data-->
<meta itemprop="dateModified" content="2018-11-02T13:30:51.821Z"> <meta itemprop="dateModified" content="2018-11-02T13:35:56.669Z">
<meta itemprop="articleBody" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to share how I got mine set up to <meta itemprop="articleBody" content="In a previous post I talked about why I like the idea of a static site generator, and the reasons for choosing to use one. In this post I want to share how I got mine set up to
basically post..."> basically post...">
<meta itemprop="url" content="/posts/setting-up-hexo-auto-deploy-from-gitlab/"> <meta itemprop="url" content="/posts/setting-up-hexo-auto-deploy-from-gitlab/">
...@@ -378,16 +384,16 @@ ...@@ -378,16 +384,16 @@
</article> </article>
<section class="related-posts"> <section class="related-posts">
<h3>Related posts</h3> <h3>Related posts</h3>
<div class="related-posts__item__wrapper">
<a class="related-posts__item" href="/posts/table-based-design/">
<div class="related-posts__item__background" style="background-image:url('/images/tableCode.jpg');"></div>
<div class="related-posts__item__overlay"></div><span class="related-posts__item__title">Table based design: Why I loathe it, and you should too!</span></a>
</div>
<div class="related-posts__item__wrapper"> <div class="related-posts__item__wrapper">
<a class="related-posts__item" href="/posts/static-what-generator/"> <a class="related-posts__item" href="/posts/static-what-generator/">
<div class="related-posts__item__background" style="background-image:url('/images/default.jpg');"></div> <div class="related-posts__item__background" style="background-image:url('/images/default.jpg');"></div>
<div class="related-posts__item__overlay"></div><span class="related-posts__item__title">Static what Generator?!</span></a> <div class="related-posts__item__overlay"></div><span class="related-posts__item__title">Static what Generator?!</span></a>
</div> </div>
<div class="related-posts__item__wrapper">
<a class="related-posts__item" href="/posts/table-based-design/">
<div class="related-posts__item__background" style="background-image:url('/images/tableCode.jpg');"></div>
<div class="related-posts__item__overlay"></div><span class="related-posts__item__title">Table based design: Why I loathe it, and you should too!</span></a>
</div>
</section> </section>
</div> </div>
</div> </div>
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
<url> <url>
<loc>http://blog.thebestjohn.com/posts/setting-up-hexo-auto-deploy-from-gitlab/</loc> <loc>http://blog.thebestjohn.com/posts/setting-up-hexo-auto-deploy-from-gitlab/</loc>
<lastmod>2018-11-02T13:30:51.821Z</lastmod> <lastmod>2018-11-02T13:35:56.669Z</lastmod>
</url> </url>
...@@ -37,14 +37,14 @@ ...@@ -37,14 +37,14 @@
</url> </url>
<url> <url>
<loc>http://blog.thebestjohn.com/posts/table-based-design/</loc> <loc>http://blog.thebestjohn.com/posts/static-what-generator/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod> <lastmod>2018-10-30T19:10:38.180Z</lastmod>
</url> </url>
<url> <url>
<loc>http://blog.thebestjohn.com/posts/static-what-generator/</loc> <loc>http://blog.thebestjohn.com/posts/table-based-design/</loc>
<lastmod>2018-10-30T19:10:38.180Z</lastmod> <lastmod>2018-10-30T19:10:38.180Z</lastmod>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment