Site updated: 2018-11-02 13:36:49
Showing
| ... | ... | @@ -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 && 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">> ~/.ssh/config</span></span><br><span class="line"><span class="string"> - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /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" ] && \. "$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 && 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">> ~/.ssh/config</span></span><br><span class="line"><span class="string"> - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add - > /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" ] && \. "$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> | ||
| ... | ... |
Please
register
or
sign in
to comment