Commit 390d56f7 authored by John's avatar John

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

parent 7d113214
......@@ -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:locale" content="en">
<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: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…">
......@@ -297,10 +297,10 @@
<table>
<tr>
<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 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>
</tr>
</table>
......@@ -318,9 +318,15 @@
<li>Installing all the packages we need for our blog.</li>
</ul>
<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
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
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>
<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>
<ul>
<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>
<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"
......@@ -358,7 +364,7 @@
})();
</script><noscript>Enable JavaScript to see comments.</noscript>
<!-- 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
basically post...">
<meta itemprop="url" content="/posts/setting-up-hexo-auto-deploy-from-gitlab/">
......@@ -378,16 +384,16 @@
</article>
<section class="related-posts">
<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">
<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__overlay"></div><span class="related-posts__item__title">Static what Generator?!</span></a>
</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>
</div>
</div>
......
......@@ -4,7 +4,7 @@
<url>
<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>
......@@ -37,14 +37,14 @@
</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>
</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>
......
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