<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: peaceiris</title>
    <description>The latest articles on DEV Community by peaceiris (@peaceiris).</description>
    <link>https://dev.to/peaceiris</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F112284%2F9cbe5741-cfbd-447e-851e-2b99fd17d261.jpeg</url>
      <title>DEV Community: peaceiris</title>
      <link>https://dev.to/peaceiris</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/peaceiris"/>
    <language>en</language>
    <item>
      <title>Start GitHub Actions self-hosted runner with VirtualBox and Vagrant</title>
      <dc:creator>peaceiris</dc:creator>
      <pubDate>Wed, 30 Jun 2021 03:57:17 +0000</pubDate>
      <link>https://dev.to/peaceiris/start-github-actions-self-hosted-runner-with-virtualbox-and-vagrant-49ei</link>
      <guid>https://dev.to/peaceiris/start-github-actions-self-hosted-runner-with-virtualbox-and-vagrant-49ei</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F064osif2cyhacb6op8qv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F064osif2cyhacb6op8qv.jpg" alt="Start GitHub Actions self-hosted runner with VirtualBox and Vagrant"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Start GitHub Actions self-hosted runner with VirtualBox and Vagrant on your local machine or a remote machine like Google Compute Engine and EC2.&lt;/li&gt;
&lt;li&gt;Avoid dind (Docker in Docker)&lt;/li&gt;
&lt;li&gt;Accelerate &lt;code&gt;docker build&lt;/code&gt; (or &lt;code&gt;docker-compose build&lt;/code&gt;) on the virtual machine with the Docker Layer Caching as the same as your local environment.&lt;/li&gt;
&lt;li&gt;Host OS: Ubuntu 18.04/20.04, macOS, Windows&lt;/li&gt;
&lt;li&gt;Guest OS: Ubuntu 20.04&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Install VirtualBox
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.virtualbox.org/" rel="noopener noreferrer"&gt;Oracle VM VirtualBox&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Ubuntu 18.04/20.04
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

&lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; virtualbox


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  macOS
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

brew cask &lt;span class="nb"&gt;install &lt;/span&gt;virtualbox


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Allow &lt;code&gt;Oracle America, Inc.&lt;/code&gt; in the System Preferences.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi226ijrwphz1fhrk5hmx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi226ijrwphz1fhrk5hmx.png" alt="Allow Oracle America, Inc."&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Install Vagrant
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/hashicorp/vagrant" rel="noopener noreferrer"&gt;hashicorp/vagrant: Vagrant is a tool for building and distributing development environments.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3&gt;
  
  
  Ubuntu 18.04/20.04
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://apt.releases.hashicorp.com/gpg | &lt;span class="nb"&gt;sudo &lt;/span&gt;apt-key add -
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt-add-repository &lt;span class="s2"&gt;"deb [arch=amd64] https://apt.releases.hashicorp.com &lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;lsb_release &lt;span class="nt"&gt;-cs&lt;/span&gt;&lt;span class="si"&gt;)&lt;/span&gt;&lt;span class="s2"&gt; main"&lt;/span&gt;
&lt;span class="nb"&gt;sudo &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;sudo &lt;/span&gt;apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; vagrant
vagrant autocomplete &lt;span class="nb"&gt;install&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  macOS
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

brew &lt;span class="nb"&gt;install &lt;/span&gt;vagrant
vagrant autocomplete &lt;span class="nb"&gt;install&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h2&gt;
  
  
  Start VM
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-self-hosted-runners" rel="noopener noreferrer"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fgh-card.dev%2Frepos%2Fpeaceiris%2Factions-self-hosted-runners.svg%3Ffullname%3D" alt="peaceiris/actions-self-hosted-runners - GitHub"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;

git clone https://github.com/peaceiris/actions-self-hosted-runners.git
&lt;span class="nb"&gt;cd&lt;/span&gt; ./actions-self-hosted-runners/images/ubuntu-20.04
git checkout v0.4.0
vim .env
make up
vagrant ssh
&lt;span class="nb"&gt;cd &lt;/span&gt;actions-runner
./config.sh &lt;span class="nt"&gt;--url&lt;/span&gt; https://github.com/[owner]/[repo] &lt;span class="nt"&gt;--token&lt;/span&gt; &lt;span class="o"&gt;[&lt;/span&gt;token]
&lt;span class="nb"&gt;nohup&lt;/span&gt; ./run.sh &amp;amp;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Create &lt;code&gt;.env&lt;/code&gt; file as follows.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

VB_CPUS = '4'
VB_MEMORY = '8192'
VB_DISK_SIZE = '30GB'


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;VB_CPUS&lt;/code&gt;: CPU cores&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VB_MEMORY&lt;/code&gt;: Memory size&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;VB_DISK_SIZE&lt;/code&gt;: Disk size&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fveu9r1clids9bd6o00s6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fveu9r1clids9bd6o00s6.png" alt="Screen Shot 2021-06-30 at 12.45.44"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Use the VM and Accelerate &lt;code&gt;docker build&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;Unlike the GitHub hosted runner, a self-hosted runner is not destroyed for each job, so Docker Layer Caching will work as well as local machine. You don't have to worry about tricky usage of the &lt;code&gt;actions/cache&lt;/code&gt; and capacity limits. The docker build job became accelerated and we achieved the purpose.&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;CI frontend&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;docker&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;self-hosted&lt;/span&gt;
    &lt;span class="na"&gt;timeout-minutes&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;3&lt;/span&gt;
    &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;COMPOSE_DOCKER_CLI_BUILD&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
      &lt;span class="na"&gt;DOCKER_BUILDKIT&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;1&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v2.3.4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hadolint ./Dockerfile&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;sudo docker-compose build frontend&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;Slow &lt;code&gt;docker-compose build&lt;/code&gt; job on the GitHub hosted runner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr1lp6kz0nojg2g0u3m2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flr1lp6kz0nojg2g0u3m2.png" alt="Slow docker-compose build job on the GitHub hosted runner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Accelerated &lt;code&gt;docker-compose build&lt;/code&gt; job on a self-hosted GitHub Actions runner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi4dv5122rrbzlo3mdz9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxi4dv5122rrbzlo3mdz9.png" alt="Accelerated docker-compose build job on a self-hosted GitHub Actions runner"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Enabled Docker Layer Caching on a GitHub Actions self-hosted runner.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1t6w3walnzjuos3t5to.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1t6w3walnzjuos3t5to.png" alt="Enabled Docker Layer Caching on a GitHub Actions self-hosted runner"&gt;&lt;/a&gt;&lt;/p&gt;


&lt;h2&gt;
  
  
  Repository
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/peaceiris" rel="noopener noreferrer"&gt;
        peaceiris
      &lt;/a&gt; / &lt;a href="https://github.com/peaceiris/actions-self-hosted-runners" rel="noopener noreferrer"&gt;
        actions-self-hosted-runners
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      GitHub Actions self-hosted runner on VirtualBox with Vagrant.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;actions-self-hosted-runners&lt;/h1&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-self-hosted-runners/actions/workflows/ci.yml" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/peaceiris/actions-self-hosted-runners/actions/workflows/ci.yml/badge.svg?event=push" alt="CI"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GitHub Actions self-hosted runner on VirtualBox with Vagrant.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/actions/runner" rel="noopener noreferrer"&gt;actions/runner&lt;/a&gt;: The Runner for GitHub Actions&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/actions/virtual-environments" rel="noopener noreferrer"&gt;actions/virtual-environments&lt;/a&gt;: GitHub Actions virtual environments&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Getting Started&lt;/h2&gt;

&lt;/div&gt;

&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/peaceiris/actions-self-hosted-runners.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; ./actions-self-hosted-runners/images/ubuntu
cat &lt;span class="pl-s"&gt;&lt;span class="pl-k"&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class="pl-k"&gt;EOF&lt;/span&gt; &amp;gt; .env&lt;/span&gt;
&lt;span class="pl-s"&gt;GHA_RUNNER_VERSION = 'x.xxx.x'&lt;/span&gt;
&lt;span class="pl-s"&gt;VB_CPUS = '4'&lt;/span&gt;
&lt;span class="pl-s"&gt;VB_MEMORY = '8192'&lt;/span&gt;
&lt;span class="pl-s"&gt;VB_DISK_SIZE = '30GB'&lt;/span&gt;
&lt;span class="pl-s"&gt;&lt;span class="pl-k"&gt;EOF&lt;/span&gt;&lt;/span&gt;
make up
vagrant ssh
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; actions-runner
./config.sh --url https://github.com/[owner]/[repo] --token [token]
nohup ./run.sh &lt;span class="pl-k"&gt;&amp;amp;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;/div&gt;

  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/peaceiris/actions-self-hosted-runners" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;






&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;We can start a self-hosted GitHub Actions runner on a Ubuntu 20.04 virtual machine with VirtualBox and Vagrant very easily.&lt;/li&gt;
&lt;li&gt;We can accelerate &lt;code&gt;docker build&lt;/code&gt; (or &lt;code&gt;docker-compose build&lt;/code&gt;) on the virtual machine with the Docker Layer Caching as the same as your local environment.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Enjoy the comfortable CI/CD! Thank you.&lt;/p&gt;

</description>
      <category>githubactions</category>
      <category>github</category>
      <category>virtualbox</category>
      <category>vagrant</category>
    </item>
    <item>
      <title>The Case Sensitivity of the GitHub Actions Runner</title>
      <dc:creator>peaceiris</dc:creator>
      <pubDate>Wed, 13 Jan 2021 07:17:53 +0000</pubDate>
      <link>https://dev.to/peaceiris/the-case-sensitivity-of-the-github-actions-runner-3e9f</link>
      <guid>https://dev.to/peaceiris/the-case-sensitivity-of-the-github-actions-runner-3e9f</guid>
      <description>&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-mdbook/issues/36"&gt;Bug: Couldn't open SUMMARY.md · Issue #36 · peaceiris/actions-mdbook&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;mdBook can recognize &lt;code&gt;SUMMARY.md&lt;/code&gt; but cannot &lt;code&gt;summary.md&lt;/code&gt; on a GitHub Actions runner (Ubuntu VM).&lt;/p&gt;

&lt;p&gt;On the other hand, both &lt;code&gt;SUMMARY.md&lt;/code&gt; and &lt;code&gt;summary.md&lt;/code&gt; are acceptable on my local macOS machine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Reason
&lt;/h2&gt;

&lt;p&gt;The case-sensitivity between the GitHub Actions runner and my local environment was different.&lt;/p&gt;

&lt;p&gt;My local macOS machine has been formatted with case-insensitive mode, so the local building has passed and the remote building failed.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;GitHub Actions Ubuntu: Case sensitive&lt;/li&gt;
&lt;li&gt;My local macOS PC: Case insensitive&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Can we select case-sensitivity of the GitHub Actions VM?
&lt;/h2&gt;

&lt;p&gt;No.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://github.com/actions/virtual-environments/issues/865"&gt;MacOSX images with case sensitive APFS filesystem · Issue #865 · actions/virtual-environments&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We can't offer another image at this time since it would affect overall capacity of Mac and be costly to maintain.&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>githubactions</category>
      <category>github</category>
      <category>mdbook</category>
    </item>
    <item>
      <title>Suggest Related Links Action</title>
      <dc:creator>peaceiris</dc:creator>
      <pubDate>Thu, 17 Sep 2020 22:44:50 +0000</pubDate>
      <link>https://dev.to/peaceiris/suggest-related-links-action-35jc</link>
      <guid>https://dev.to/peaceiris/suggest-related-links-action-35jc</guid>
      <description>&lt;h2&gt;
  
  
  My Workflow
&lt;/h2&gt;

&lt;p&gt;Our GitHub Action is &lt;a href="https://github.com/peaceiris/actions-suggest-related-links"&gt;peaceiris/actions-suggest-related-links&lt;/a&gt; which suggests related or similar issues, documents, and links. &lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--vJ70wriM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://practicaldev-herokuapp-com.freetls.fastly.net/assets/github-logo-ba8488d21cd8ee1fee097b8410db9deaa41d0ca30b004c0c63de0a479114156f.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/peaceiris"&gt;
        peaceiris
      &lt;/a&gt; / &lt;a href="https://github.com/peaceiris/actions-suggest-related-links"&gt;
        actions-suggest-related-links
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      A GitHub Action to suggest related or similar issues, documents, and links. Based on the power of NLP and fastText.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;h2&gt;
Suggest Related Links Action&lt;/h2&gt;
&lt;p&gt;A GitHub Action to suggest related or similar issues, documents, and links. Based on the power of NLP and fastText.&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/./images/example.jpg"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s---EuNZG-3--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/./images/example.jpg" alt="Suggest Related Links Action example result | peaceiris/actions-suggest-related-links"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Sometimes, users create a new issue that is similar to already opened or closed issues. When you face the issue, you need to find similar issues or related links and post it as a comment. That process is a pain, right? This action can do it instead of you!&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/blob/main/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/b79eee848888dfac3bd508668f53acb8fd757615/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7065616365697269732f616374696f6e732d737567676573742d72656c617465642d6c696e6b732e737667" alt="license"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/releases/latest"&gt;&lt;img src="https://camo.githubusercontent.com/ae5eaabf0d460c5ddbe80f2f188d0908a81b6a68/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7065616365697269732f616374696f6e732d737567676573742d72656c617465642d6c696e6b732e737667" alt="release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/releases"&gt;&lt;img src="https://camo.githubusercontent.com/9a01ced6fc7fd33591f744f836bf8c250bdd4af1/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f7065616365697269732f616374696f6e732d737567676573742d72656c617465642d6c696e6b732e737667" alt="GitHub release date"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/releases.atom"&gt;&lt;img src="https://camo.githubusercontent.com/9e1bef011009b0c08fd8c6f6ec707eba91e871fc/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f72656c656173652d666565642d79656c6c6f77" alt="Release Feed"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://codecov.io/gh/peaceiris/actions-suggest-related-links" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/d5c631a9276d456d43fe7bf96a288d72cf98fdd7/68747470733a2f2f636f6465636f762e696f2f67682f7065616365697269732f616374696f6e732d737567676573742d72656c617465642d6c696e6b732f6272616e63682f6d61696e2f67726170682f62616467652e737667" alt="codecov"&gt;&lt;/a&gt;
&lt;a href="https://www.codefactor.io/repository/github/peaceiris/actions-suggest-related-links" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/c2e640069df0ac08402a02eaefa8291bbff1a2f5/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f7065616365697269732f616374696f6e732d737567676573742d72656c617465642d6c696e6b732f6261646765" alt="CodeFactor"&gt;&lt;/a&gt;
&lt;a href="https://codeclimate.com/github/peaceiris/actions-suggest-related-links/maintainability" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/df92b478d67daa04b5287df9d7fd3bfb4475d8a0/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f34653462333032643264333637623136396238352f6d61696e7461696e6162696c697479" alt="Maintainability"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;
Table of Contents&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#getting-started"&gt;Getting Started&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#create-workflow"&gt;Create Workflow&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#save-issues-data"&gt;Save Issues Data&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#create-issue"&gt;Create Issue&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#overview"&gt;Overview&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#data-collection"&gt;Data Collection&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#preprocessing"&gt;Preprocessing&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#train-model"&gt;Train Model&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#find-similar-issues"&gt;Find Similar Issues&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#suggest-issues"&gt;Suggest Issues&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#maintainers"&gt;Maintainers&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://raw.githubusercontent.com/peaceiris/actions-suggest-related-links/main/#license"&gt;License&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
Getting Started&lt;/h2&gt;
&lt;h3&gt;
Create Workflow&lt;/h3&gt;
&lt;p&gt;Create your YAML workflow file as follows.&lt;/p&gt;
&lt;p&gt;e.g. &lt;code&gt;.github/workflows/suggest-related-links.yml&lt;/code&gt;&lt;/p&gt;
&lt;div class="highlight highlight-source-yaml"&gt;
&lt;pre&gt;&lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;'&lt;/span&gt;Suggest Related Links&lt;span class="pl-pds"&gt;'&lt;/span&gt;&lt;/span&gt;
&lt;span class="pl-ent"&gt;on&lt;/span&gt;
  &lt;span class="pl-ent"&gt;issues&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;types&lt;/span&gt;:
      - &lt;span class="pl-s"&gt;opened&lt;/span&gt;
      - &lt;span class="pl-s"&gt;edited&lt;/span&gt;
  &lt;span class="pl-ent"&gt;workflow_dispatch&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;schedule&lt;/span&gt;:
    - &lt;span class="pl-ent"&gt;cron&lt;/span&gt;: &lt;span class="pl-s"&gt;&lt;span class="pl-pds"&gt;'&lt;/span&gt;13 13 * * */7&lt;span class="pl-pds"&gt;'&lt;/span&gt;&lt;/span&gt;

&lt;span class="pl-ent"&gt;jobs&lt;/span&gt;:
  &lt;span class="pl-ent"&gt;action&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;runs-on&lt;/span&gt;: &lt;span class="pl-s"&gt;ubuntu-18.04&lt;/span&gt;
    &lt;span class="pl-ent"&gt;steps&lt;/span&gt;&lt;/pre&gt;…&lt;/div&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/peaceiris/actions-suggest-related-links"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;blockquote&gt;
&lt;p&gt;A GitHub Action to suggest related or similar issues, documents, and links. Based on the power of NLP and fastText.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Sometimes, users create a new issue that is similar to already opened or closed issues. When you face the issue, you need to find similar issues or related links and post it as a comment. That process is a pain, right? This action can do it instead of you!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pHW065dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/obhoy6gpwj8dnrojdbej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pHW065dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/obhoy6gpwj8dnrojdbej.png" alt="Suggest Related Links Action example result | peaceiris/actions-suggest-related-links"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;e.g. &lt;code&gt;.github/workflows/suggest-related-links.yml&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;Suggest&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Related&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Links'&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;issues&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;types&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;opened&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;edited&lt;/span&gt;
  &lt;span class="na"&gt;workflow_dispatch&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;13&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;13&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*/7'&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;action&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-18.04&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Cache dependencies&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/cache@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/actions-suggest-related-links-tmp&lt;/span&gt;
          &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ runner.os }}-action-${{ hashFiles('~/actions-suggest-related-links-tmp/training-data.json') }}&lt;/span&gt;
          &lt;span class="na"&gt;restore-keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
            &lt;span class="s"&gt;${{ runner.os }}-action-&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-suggest-related-links@v1.1.1&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-suggest-related-links/models/fasttext@v1.1.1&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github.event_name == 'issues'&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;v1.1.1&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-suggest-related-links@v1.1.1&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;mode&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;suggest'&lt;/span&gt;
          &lt;span class="na"&gt;repository&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;peaceiris/actions-gh-pages'&lt;/span&gt;
          &lt;span class="na"&gt;unclickable&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="no"&gt;true&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h2&gt;
  
  
  Workflow Overview
&lt;/h2&gt;

&lt;p&gt;This action mainly consists of 5 parts: Data Collection, Preprocessing, Train model, Find similar issues, and Suggest links.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XcYL6o9z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/r5sz76dqtuzzv6r3j0yk.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XcYL6o9z--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/r5sz76dqtuzzv6r3j0yk.jpg" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Data Collection
&lt;/h3&gt;

&lt;p&gt;All issues of the repository are collected with the GitHub API. The issues include the title, body, and comments. Training Data is regularly collected using the scheduling function and output as an artifact and saved as a cache.&lt;/p&gt;

&lt;h3&gt;
  
  
  Preprocessing
&lt;/h3&gt;

&lt;p&gt;The Markdown format is converted to plain text with &lt;a href="https://unifiedjs.com/"&gt;unified&lt;/a&gt;.&lt;br&gt;
At this time, symbols that are not alphabetic characters are deleted.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/blob/main/actions/src/preprocess.ts"&gt;https://github.com/peaceiris/actions-suggest-related-links/blob/main/actions/src/preprocess.ts&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Train Model
&lt;/h3&gt;

&lt;p&gt;When a new issue is created or updated, the fastText model is trained.&lt;br&gt;
In accordance with its name, fastText has the advantage of very short inference times.&lt;/p&gt;

&lt;p&gt;We think training time at the GitHub Actions runners won't be an issue.&lt;br&gt;
In the case of &lt;a href="https://github.com/peaceiris/actions-gh-pages"&gt;GitHub Actions for GitHub Pages&lt;/a&gt; repository, the training execution time is 1 sec and the total execution time is about 30 sec.&lt;/p&gt;

&lt;h3&gt;
  
  
  Find Similar Issues
&lt;/h3&gt;

&lt;p&gt;Calculate word vectors of training data and word vectors of posted data in fastText. The cosine similarity is used to determine which word vectors of training data is close to the word vectors of the posted data. The higher the cosine similarity, the more similar the sentence.&lt;/p&gt;

&lt;h3&gt;
  
  
  Suggest Issues
&lt;/h3&gt;

&lt;p&gt;Some related links which are similar to the created issue body will be listed by this action.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pHW065dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/obhoy6gpwj8dnrojdbej.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pHW065dl--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/obhoy6gpwj8dnrojdbej.png" alt="Suggest Related Links Action example result | peaceiris/actions-suggest-related-links"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-suggest-related-links/issues/2"&gt;https://github.com/peaceiris/actions-suggest-related-links/issues/2&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Submission Category
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Maintainer Must-Haves&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Additional Resources / Info
&lt;/h2&gt;

&lt;p&gt;Maintainers&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/peaceiris"&gt;peaceiris - DEV Community 👩‍💻👨‍💻&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/skaisei"&gt;Kaisei Shimura - DEV Community 👩‍💻👨‍💻&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dependencies&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/actions/toolkit"&gt;actions/toolkit: The GitHub ToolKit for developing GitHub Actions.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/facebookresearch/fastText"&gt;facebookresearch/fastText: Library for fast text representation and classification.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://unifiedjs.com/"&gt;unified&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>actionshackathon</category>
      <category>githubactions</category>
      <category>github</category>
    </item>
    <item>
      <title>Deploy to GitHub Pages with GitHub Actions for Static Site Generator</title>
      <dc:creator>peaceiris</dc:creator>
      <pubDate>Wed, 11 Sep 2019 04:44:04 +0000</pubDate>
      <link>https://dev.to/peaceiris/deploy-to-github-pages-with-github-actions-for-static-site-generator-1mo6</link>
      <guid>https://dev.to/peaceiris/deploy-to-github-pages-with-github-actions-for-static-site-generator-1mo6</guid>
      <description>&lt;h2&gt;
  
  
  GitHub Actions for deploying to GitHub Pages
&lt;/h2&gt;

&lt;p&gt;Using the following workflow, you can deploy your static site to GitHub Pages with &lt;a href="https://www.staticgen.com/"&gt;Static Site Generators&lt;/a&gt; (Hugo, MkDocs, Gatsby, GitBook, etc.)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
  &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
    &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./public&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.blog/2020-03-22-github-action-hero-shohei-ueda/"&gt;GitHub Action Hero: Shohei Ueda - The GitHub Blog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This GitHub Pages Action, Hugo Action, and mdBook Action were featured at the GitHub Blog. Thanks all!&lt;/p&gt;

&lt;p&gt;For more details, go to &lt;a href="https://github.com/peaceiris/actions-gh-pages"&gt;https://github.com/peaceiris/actions-gh-pages&lt;/a&gt; 👇&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/peaceiris"&gt;
        peaceiris
      &lt;/a&gt; / &lt;a href="https://github.com/peaceiris/actions-gh-pages"&gt;
        actions-gh-pages
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      GitHub Actions for GitHub Pages 🚀 Deploy static files and publish your site easily. Static-Site-Generators-friendly.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;
GitHub Pages Action
&lt;/h2&gt;
&lt;/div&gt;

&lt;div&gt;
  &lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-gh-pages./images/ogp.svg"&gt;&lt;img width="400" alt="GitHub Actions for deploying to GitHub Pages with Static Site Generators" src="https://res.cloudinary.com/practicaldev/image/fetch/s--p6fAjdzK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/peaceiris/actions-gh-pages./images/ogp.svg"&gt;&lt;/a&gt;
&lt;p&gt;&lt;a href="https://github.com/peaceiris/actions-gh-pages/blob/main/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/a9a9675569a18b38772513fd34bcf5f5a2b70fce7b2722e4634da79adf925ec8/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7065616365697269732f616374696f6e732d67682d70616765732e737667" alt="license"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-gh-pages/releases/latest"&gt;&lt;img src="https://camo.githubusercontent.com/73ce2e98cb05c86baae139069460563c34549a4643682ad7501c5a90bc813011/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7065616365697269732f616374696f6e732d67682d70616765732e737667" alt="release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-gh-pages/releases"&gt;&lt;img src="https://camo.githubusercontent.com/cbdcc5f3bc0334343a32598592290bc3bd30720a07562f0864206d4736daf239/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f7065616365697269732f616374696f6e732d67682d70616765732e737667" alt="GitHub release date"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-gh-pages/workflows/Test/badge.svg?branch=main&amp;amp;event=push"&gt;&lt;img src="https://github.com/peaceiris/actions-gh-pages/workflows/Test/badge.svg?branch=main&amp;amp;event=push" alt="Test"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-gh-pages/workflows/Code%20Scanning/badge.svg?event=push"&gt;&lt;img src="https://github.com/peaceiris/actions-gh-pages/workflows/Code%20Scanning/badge.svg?event=push" alt="Code Scanning"&gt;&lt;/a&gt;
&lt;a href="https://www.codefactor.io/repository/github/peaceiris/actions-gh-pages" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/a75baf23ff98cba21532d9544244072bc1201456f80e392af83cc4db974e5e97/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f7065616365697269732f616374696f6e732d67682d70616765732f6261646765" alt="CodeFactor"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;See also the GitHub official GitHub Pages Action first.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.blog/2022-08-10-github-pages-now-uses-actions-by-default/" rel="nofollow"&gt;GitHub Pages now uses Actions by default | The GitHub Blog&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.blog/changelog/2022-07-27-github-pages-custom-github-actions-workflows-beta/" rel="nofollow"&gt;GitHub Pages: Custom GitHub Actions Workflows (beta) | GitHub Changelog&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;

&lt;p&gt;This is a &lt;strong&gt;GitHub Action&lt;/strong&gt; to deploy your static files to &lt;strong&gt;GitHub Pages&lt;/strong&gt;
This deploy action can be combined simply and freely with &lt;a href="https://jamstack.org/generators/" rel="nofollow"&gt;Static Site Generators&lt;/a&gt;. (Hugo, MkDocs, Gatsby, mdBook, Next, Nuxt, and so on.)&lt;/p&gt;
&lt;p&gt;The next example step will deploy &lt;code&gt;./public&lt;/code&gt; directory to the remote &lt;code&gt;gh-pages&lt;/code&gt; branch.&lt;/p&gt;
&lt;div class="highlight highlight-source-yaml notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;- &lt;span class="pl-ent"&gt;name&lt;/span&gt;: &lt;span class="pl-s"&gt;Deploy&lt;/span&gt;
  &lt;span class="pl-ent"&gt;uses&lt;/span&gt;: &lt;span class="pl-s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
  &lt;span class="pl-ent"&gt;with&lt;/span&gt;:
    &lt;span class="pl-ent"&gt;github_token&lt;/span&gt;: &lt;span class="pl-s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
    &lt;span class="pl-ent"&gt;publish_dir&lt;/span&gt;: &lt;span class="pl-s"&gt;./public&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;p&gt;For newbies of GitHub Actions:
Note that the &lt;code&gt;GITHUB_TOKEN&lt;/code&gt; is &lt;strong&gt;NOT&lt;/strong&gt; a personal access token.
A GitHub Actions runner automatically creates a &lt;code&gt;GITHUB_TOKEN&lt;/code&gt; secret to authenticate in your workflow.
So, you can start to deploy immediately without any configuration.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Supported Tokens&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Three tokens are supported.&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Token&lt;/th&gt;
&lt;th&gt;Private repo&lt;/th&gt;
&lt;th&gt;Public&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;/table&gt;&lt;/div&gt;…&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/peaceiris/actions-gh-pages"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Getting Started
&lt;/h2&gt;

&lt;p&gt;An example YAML file (&lt;code&gt;.github/workflows/gh-pages.yml&lt;/code&gt;) with Hugo action.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo"&gt;peaceiris/actions-hugo: GitHub Actions for Hugo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--A9-wwsHG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/peaceiris"&gt;
        peaceiris
      &lt;/a&gt; / &lt;a href="https://github.com/peaceiris/actions-hugo"&gt;
        actions-hugo
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      GitHub Actions for Hugo ⚡️ Setup Hugo quickly and build your site fast. Hugo extended, Hugo Modules, Linux (Ubuntu), macOS, and Windows are supported.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;GitHub Actions for Hugo&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-hugo./images/ogp.svg"&gt;&lt;img width="400" alt="GitHub Actions for Hugo" src="https://res.cloudinary.com/practicaldev/image/fetch/s--iykzdaEn--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://github.com/peaceiris/actions-hugo./images/ogp.svg"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.repostatus.org/#active" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/2f7a95a01b9543e8dcac34358c343b1b2d75abb019511c5254490fb99a3c16fc/68747470733a2f2f7777772e7265706f7374617475732e6f72672f6261646765732f6c61746573742f6163746976652e737667" alt="Project status: active – The project has reached a stable, usable state and is being actively developed."&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo/blob/main/LICENSE"&gt;&lt;img src="https://camo.githubusercontent.com/d5351e5941b7b36e6238d5918f746a55fcf7389f981376e5bbd5f7f3ba46075f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7065616365697269732f616374696f6e732d6875676f2e737667" alt="license"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo/releases/latest"&gt;&lt;img src="https://camo.githubusercontent.com/0bf19d714fe9148ea5bb4aeaccb630262d8bbf8aba600bcae84f950ce57032f0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7065616365697269732f616374696f6e732d6875676f2e737667" alt="release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo/releases"&gt;&lt;img src="https://camo.githubusercontent.com/d3bef77c2b5fa8e9358dfb368f9f17ef27101126f08b81b4a3326758d92d66cf/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f7065616365697269732f616374696f6e732d6875676f2e737667" alt="GitHub release date"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo/releases.atom"&gt;&lt;img src="https://camo.githubusercontent.com/69f8d6bcb9b358b3a2342d1cf59a253a70192b547ca3b05f2575d2c96c2eb75e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f72656c656173652d666565642d79656c6c6f77" alt="Release Feed"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-hugo/workflows/Test/badge.svg?branch=main&amp;amp;event=push"&gt;&lt;img src="https://github.com/peaceiris/actions-hugo/workflows/Test/badge.svg?branch=main&amp;amp;event=push" alt="Test"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer" href="https://github.com/peaceiris/actions-hugo/workflows/Code%20Scanning/badge.svg?event=push"&gt;&lt;img src="https://github.com/peaceiris/actions-hugo/workflows/Code%20Scanning/badge.svg?event=push" alt="Code Scanning"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://www.codefactor.io/repository/github/peaceiris/actions-hugo" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/7c05ca7acba4eb04b6cf2b2a0ddd44d859aa147ed812eefc18f042bcc12ec715/68747470733a2f2f7777772e636f6465666163746f722e696f2f7265706f7369746f72792f6769746875622f7065616365697269732f616374696f6e732d6875676f2f6261646765" alt="CodeFactor"&gt;&lt;/a&gt;
&lt;a href="https://codecov.io/gh/peaceiris/actions-hugo" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/1ed76d38b86d548223ff5cfb2e49c291c9e1a765a1a91d64245c74fe4e9ab662/68747470733a2f2f636f6465636f762e696f2f67682f7065616365697269732f616374696f6e732d6875676f2f6272616e63682f6d61696e2f67726170682f62616467652e737667" alt="codecov"&gt;&lt;/a&gt;
&lt;a href="https://codeclimate.com/github/peaceiris/actions-hugo/maintainability" rel="nofollow"&gt;&lt;img src="https://camo.githubusercontent.com/3fe5ca99b0a7726bc5b6f4729535fe3d5c89f5b48b4ce95a60e18022046f6872/68747470733a2f2f6170692e636f6465636c696d6174652e636f6d2f76312f6261646765732f65626632656566336130343662333936626139632f6d61696e7461696e6162696c697479" alt="Maintainability"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;This &lt;strong&gt;Hugo Setup Action&lt;/strong&gt; can install &lt;a href="https://github.com/gohugoio/hugo"&gt;Hugo&lt;/a&gt; to a virtual machine of &lt;strong&gt;GitHub Actions&lt;/strong&gt;
&lt;strong&gt;Hugo extended&lt;/strong&gt; version, &lt;strong&gt;Hugo Modules&lt;/strong&gt;, Linux (Ubuntu), macOS, and Windows are supported.&lt;/p&gt;
&lt;p&gt;From &lt;code&gt;v2&lt;/code&gt;, this Hugo Setup Action has migrated to a JavaScript (TypeScript) action
We no longer build or pull a Hugo docker image.
Thanks to this change, we can complete this action in less than a few seconds.
(A docker base action was taking about 1 min or more execution time to build and pull a docker image.)&lt;/p&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;OS (runs-on)&lt;/th&gt;
&lt;th&gt;ubuntu-latest, ubuntu-20.04, ubuntu-22.04&lt;/th&gt;
&lt;th&gt;macos-latest&lt;/th&gt;
&lt;th&gt;windows-2019&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Hugo type&lt;/th&gt;
&lt;th&gt;Hugo Extended&lt;/th&gt;
&lt;th&gt;Hugo Modules&lt;/th&gt;
&lt;th&gt;Latest Hugo&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Support&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;td&gt;✅️&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Table of Contents&lt;/h2&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo#getting-started"&gt;Getting started&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-create-your-workflow"&gt;⭐️ Create your workflow&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo#options"&gt;Options&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-use-hugo-extended"&gt;⭐️ Use Hugo extended&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-use-the-latest-version-of-hugo"&gt;⭐️ Use the latest version of Hugo&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo#tips"&gt;Tips&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-caching-hugo-modules"&gt;⭐️ Caching Hugo Modules&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-read-hugo-version-from-file"&gt;⭐️ Read Hugo version from file&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/peaceiris/actions-hugo#%EF%B8%8F-workflow-for-autoprefixer-and-postcss-cli"&gt;⭐️ Workflow for autoprefixer&lt;/a&gt;…&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/peaceiris/actions-hugo"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br&gt;


&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;submodules&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;  &lt;span class="c1"&gt;# Fetch Hugo themes&lt;/span&gt;
          &lt;span class="na"&gt;fetch-depth&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;0&lt;/span&gt;    &lt;span class="c1"&gt;# Fetch all history for .GitInfo and .Lastmod&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Hugo&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-hugo@v3&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;hugo-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0.85.0'&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;hugo --minify&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./public&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h3&gt;
  
  
  Options
&lt;/h3&gt;

&lt;p&gt;Many options are available! Go to the &lt;a href="https://github.com/peaceiris/actions-gh-pages"&gt;repository (peaceiris/actions-gh-pages)&lt;/a&gt; and check the latest README.&lt;/p&gt;




&lt;h2&gt;
  
  
  Other Examples
&lt;/h2&gt;

&lt;h3&gt;
  
  
  ⭐ Static Site Generators with Node.js
&lt;/h3&gt;

&lt;p&gt;next.js, nuxt.js, gatsby, hexo, gitbook, vuepress, react-static, gridsome, etc. (JavaScript projects)&lt;/p&gt;

&lt;p&gt;Premise: Dependencies are managed by &lt;code&gt;package.json&lt;/code&gt; and &lt;code&gt;package-lock.json&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Node&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;14'&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Cache dependencies&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/cache@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/.npm&lt;/span&gt;
          &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}&lt;/span&gt;
          &lt;span class="na"&gt;restore-keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
            &lt;span class="s"&gt;${{ runner.os }}-node-&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm ci&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm run build&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./public&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ Static Site Generators with Python
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://github.com/getpelican/pelican"&gt;pelican&lt;/a&gt;, &lt;a href="https://github.com/mkdocs/mkdocs"&gt;MkDocs&lt;/a&gt;, &lt;a href="https://github.com/sphinx-doc/sphinx"&gt;sphinx&lt;/a&gt;, and so on.&lt;/p&gt;

&lt;p&gt;Premise: Dependencies are managed by &lt;code&gt;requirements.txt&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Python&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-python@v5&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;python-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;3.8'&lt;/span&gt;
          &lt;span class="na"&gt;architecture&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;x64'&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Cache dependencies&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/cache@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;~/.cache/pip&lt;/span&gt;
          &lt;span class="na"&gt;key&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}&lt;/span&gt;
          &lt;span class="na"&gt;restore-keys&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
            &lt;span class="s"&gt;${{ runner.os }}-pip-&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install dependencies&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;python3 -m pip install --upgrade pip&lt;/span&gt;
          &lt;span class="s"&gt;python3 -m pip install -r ./requirements.txt&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mkdocs build&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./site&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ mdBook (Rust)
&lt;/h3&gt;

&lt;p&gt;An example GitHub Actions workflow to deploy &lt;a href="https://github.com/rust-lang/mdBook"&gt;rust-lang/mdBook&lt;/a&gt; site to GitHub Pages.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/peaceiris/actions-mdbook"&gt;peaceiris/actions-mdbook: GitHub Actions for mdBook (rust-lang/mdBook)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup mdBook&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-mdbook@v2&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;mdbook-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;0.4.10'&lt;/span&gt;
          &lt;span class="c1"&gt;# mdbook-version: 'latest'&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;mdbook build&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./book&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ Flutter Web
&lt;/h3&gt;

&lt;p&gt;An exapmle workflow for &lt;a href="https://flutter.dev/docs/get-started/web"&gt;Flutter web project&lt;/a&gt;.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Flutter&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;git clone https://github.com/flutter/flutter.git --depth 1 -b beta _flutter&lt;/span&gt;
          &lt;span class="s"&gt;echo "::add-path::${GITHUB_WORKSPACE}/_flutter/bin"&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;flutter config --enable-web&lt;/span&gt;
          &lt;span class="s"&gt;flutter pub get&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;flutter build web&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./build/web&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ Elm
&lt;/h3&gt;

&lt;p&gt;An exapmle workflow for &lt;a href="https://elm-lang.org"&gt;Elm&lt;/a&gt;.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Node&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;14'&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Elm&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm install elm --global&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Make&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;elm make --optimize src/Main.elm&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Move files&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;mkdir ./public&lt;/span&gt;
          &lt;span class="s"&gt;mv ./index.html ./public/&lt;/span&gt;
        &lt;span class="c1"&gt;# If you have non-minimal setup with some assets and separate html/js files,&lt;/span&gt;
        &lt;span class="c1"&gt;# provide --output=&amp;lt;output-file&amp;gt; option for `elm make` and remove this step&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./public&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ github/personal-website
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://github.com/github/personal-website"&gt;github/personal-website&lt;/a&gt; - Code that'll help you kickstart a personal website that showcases your work as a software developer.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="c1"&gt;# .github/workflows/github-pages.yml&lt;/span&gt;

&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GitHub Pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;master&lt;/span&gt;
  &lt;span class="na"&gt;schedule&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;cron&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s1"&gt;'&lt;/span&gt;&lt;span class="s"&gt;24&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*/24&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;*'&lt;/span&gt;  &lt;span class="c1"&gt;# Once a day&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy to GitHub Pages&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./&lt;/span&gt;
          &lt;span class="na"&gt;allow_empty_commit&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
          &lt;span class="na"&gt;enable_jekyll&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
          &lt;span class="na"&gt;cname&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;github.peaceiris.com&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  ⭐️ Swift Publish
&lt;/h3&gt;

&lt;p&gt;An example workflow for &lt;a href="https://github.com/JohnSundell/Publish"&gt;JohnSundell/Publish&lt;/a&gt;.&lt;/p&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;GitHub Pages&lt;/span&gt;

&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;push&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="s"&gt;main&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;

&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;deploy&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-22.04&lt;/span&gt;
    &lt;span class="na"&gt;concurrency&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;group&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.workflow }}-${{ github.ref }}&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup JohnSundell/Publish&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;cd ${HOME}&lt;/span&gt;
          &lt;span class="s"&gt;git clone --depth=1 https://github.com/JohnSundell/Publish.git&lt;/span&gt;
          &lt;span class="s"&gt;cd ./Publish&lt;/span&gt;
          &lt;span class="s"&gt;swift build -c release&lt;/span&gt;
          &lt;span class="s"&gt;echo "::add-path::${HOME}/Publish/.build/release"&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;publish-cli generate&lt;/span&gt;

      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy to GitHub Pages&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;peaceiris/actions-gh-pages@v4&lt;/span&gt;
        &lt;span class="na"&gt;if&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ github.ref == 'refs/heads/main' }}&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;github_token&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.GITHUB_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;publish_dir&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;./Output&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;p&gt;Check more options and examples on GitHub. &lt;a href="https://github.com/peaceiris/actions-gh-pages"&gt;peaceiris/actions-gh-pages&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;That's all! Enjoy GitHub Actions and Static Site Generators!&lt;/p&gt;

</description>
      <category>github</category>
      <category>githubpages</category>
      <category>githubactions</category>
      <category>hugo</category>
    </item>
    <item>
      <title>MkDocs Material Boilerplate - Starter Kit</title>
      <dc:creator>peaceiris</dc:creator>
      <pubDate>Tue, 26 Feb 2019 09:24:01 +0000</pubDate>
      <link>https://dev.to/peaceiris/mkdocs-material-boilerplate---starter-kit-7i4</link>
      <guid>https://dev.to/peaceiris/mkdocs-material-boilerplate---starter-kit-7i4</guid>
      <description>&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzuxbp93aoriife88tla9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fthepracticaldev.s3.amazonaws.com%2Fi%2Fzuxbp93aoriife88tla9.png" alt="MkDocs Material"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Overview
&lt;/h2&gt;

&lt;p&gt;I released &lt;strong&gt;MkDocs Material Boilerplate - Starter Kit&lt;/strong&gt; 🚀&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate" rel="noopener noreferrer"&gt;peaceiris/mkdocs-material-boilerplate - GitHub&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;MkDocs Material Boilerplate (Starter Kit) - Deploy documentation to platforms (Netlify, GitHub Pages, GitLab Pages, and AWS Amplify Console) with Docker, pipenv, and GitHub Actions.&lt;/p&gt;

&lt;p&gt;Issues, pull requests, comments, and GitHub star ⭐️ are welcome❗️&lt;/p&gt;




&lt;h2&gt;
  
  
  What is MkDocs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/mkdocs/mkdocs" rel="noopener noreferrer"&gt;MkDocs&lt;/a&gt; is one of the best static site generators. We can write our document using markdown and MkDocs builds static site from markdown. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/squidfunk/mkdocs-material" rel="noopener noreferrer"&gt;MkDocs Material&lt;/a&gt; is one of the MkDocs theme based on &lt;a href="https://material.io/" rel="noopener noreferrer"&gt;Material Design&lt;/a&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  Deploy to platforms
&lt;/h2&gt;

&lt;p&gt;We have &lt;strong&gt;a lot of choices&lt;/strong&gt; to manage documentation and deploy it.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://pages.github.com/" rel="noopener noreferrer"&gt;GitHub Pages&lt;/a&gt; + &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;GitHub&lt;/a&gt; +

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;mkdocs gh-deploy&lt;/code&gt; command&lt;/li&gt;
&lt;li&gt;&lt;a href="https://circleci.com/" rel="noopener noreferrer"&gt;CircleCI&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;GitHub Actions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://about.gitlab.com/product/pages/" rel="noopener noreferrer"&gt;GitLab Pages&lt;/a&gt; + &lt;a href="https://about.gitlab.com/" rel="noopener noreferrer"&gt;GitLab&lt;/a&gt; + &lt;a href="https://about.gitlab.com/product/continuous-integration/" rel="noopener noreferrer"&gt;GitLab CI/CD&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://www.netlify.com/" rel="noopener noreferrer"&gt;Netlify&lt;/a&gt; +

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;GitLab&lt;/li&gt;
&lt;li&gt;&lt;a href="https://bitbucket.org/" rel="noopener noreferrer"&gt;BitBucket&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;a href="https://aws.amazon.com/amplify/console/" rel="noopener noreferrer"&gt;AWS Amplify Console&lt;/a&gt; +

&lt;ul&gt;
&lt;li&gt;GitHub&lt;/li&gt;
&lt;li&gt;GitLab&lt;/li&gt;
&lt;li&gt;BitBucket&lt;/li&gt;
&lt;li&gt;&lt;a href="https://aws.amazon.com/codecommit/" rel="noopener noreferrer"&gt;AWS CodeCommit&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;This boilerplate includes build and deploy settings. We can &lt;strong&gt;easily&lt;/strong&gt; publish our documentation &lt;strong&gt;right now&lt;/strong&gt;❗️&lt;/p&gt;

&lt;p&gt;👉 &lt;a href="https://peaceiris.github.io/mkdocs-material-boilerplate/" rel="noopener noreferrer"&gt;Demo site on GitHub Pages&lt;/a&gt; (build &amp;amp; deploy with GitHub Actions)&lt;/p&gt;




&lt;h2&gt;
  
  
  More
&lt;/h2&gt;

&lt;p&gt;Go to &lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate" rel="noopener noreferrer"&gt;peaceiris/mkdocs-material-boilerplate - GitHub&lt;/a&gt; to get more information.&lt;/p&gt;

&lt;p&gt;Thanks for reading and enjoy MkDocs❗️&lt;/p&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev.to%2Fassets%2Fgithub-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/peaceiris" rel="noopener noreferrer"&gt;
        peaceiris
      &lt;/a&gt; / &lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate" rel="noopener noreferrer"&gt;
        mkdocs-material-boilerplate
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      MkDocs Material Boilerplate (Starter Kit) - Deploy documentation to hosting platforms (Netlify, GitHub Pages, GitLab Pages, and AWS Amplify Console) with Docker, pipenv, and GitHub Actions.
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;
&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/peaceiris/mkdocs-material-boilerplate/main/docs_sample/images/graduate-cap.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fpeaceiris%2Fmkdocs-material-boilerplate%2Fmain%2Fdocs_sample%2Fimages%2Fgraduate-cap.png" alt="MkDocs icon" width="170"&gt;&lt;/a&gt;
&lt;br&gt;MkDocs Material&lt;br&gt;Boilerplate - Starter Kit
&lt;/h1&gt;

&lt;/div&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://raw.githubusercontent.com/peaceiris/mkdocs-material-boilerplate/main/docs_sample/images/material.png"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fraw.githubusercontent.com%2Fpeaceiris%2Fmkdocs-material-boilerplate%2Fmain%2Fdocs_sample%2Fimages%2Fmaterial.png" alt="Eyecatch image of MkDocs Material Boilerplate (Starter Kit)"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate/blob/main/LICENSE" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/b1e48524efacdb36ef0f7d812748260bd796aa3f148b615af8d7bf73a5f3c61f/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f7065616365697269732f6d6b646f63732d6d6174657269616c2d626f696c6572706c6174652e737667" alt="license"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate/releases/latest" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/42b74b267782c20447665232352881cb066278565c6ac64b195a2ad69ebd9439/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f7065616365697269732f6d6b646f63732d6d6174657269616c2d626f696c6572706c6174652e737667" alt="release"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate/releases" rel="noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/c08df40ececb03f20548377ec636d3022e2e78ea7733677406ae444f44ecc1a0/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652d646174652f7065616365697269732f6d6b646f63732d6d6174657269616c2d626f696c6572706c6174652e737667" alt="GitHub release date"&gt;&lt;/a&gt;
&lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate/actions" rel="noopener noreferrer"&gt;&lt;img src="https://github.com/peaceiris/mkdocs-material-boilerplate/workflows/github%20pages/badge.svg" alt="GitHub Actions status"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;a href="https://app.netlify.com/sites/mkdocs-material/deploys" rel="nofollow noopener noreferrer"&gt;&lt;img src="https://camo.githubusercontent.com/72c111383fdf01328601cdc1dc18d79c5e45a55e15e23c54d91cd5f3d7f12acb/68747470733a2f2f6170692e6e65746c6966792e636f6d2f6170692f76312f6261646765732f39633935636366342d356331652d343437622d383032352d6464306236663837363461352f6465706c6f792d737461747573" alt="Netlify Status"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Details&lt;/h2&gt;

&lt;/div&gt;
&lt;p&gt;Read more 👉 &lt;a href="https://peaceiris.github.io/mkdocs-material-boilerplate/" rel="nofollow noopener noreferrer"&gt;Documentation - MkDocs Material Boilerplate&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Quick start&lt;/h2&gt;

&lt;/div&gt;
&lt;div class="highlight highlight-source-shell notranslate position-relative overflow-auto js-code-highlight"&gt;
&lt;pre&gt;git clone https://github.com/peaceiris/mkdocs-material-boilerplate.git
&lt;span class="pl-c1"&gt;cd&lt;/span&gt; mkdocs-material-boilerplate
pipenv sync --dev
pipenv shell
inv serve --config-file mkdocs-sample.yml&lt;/pre&gt;

&lt;/div&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;Links&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/mkdocs/mkdocs/" rel="noopener noreferrer"&gt;mkdocs/mkdocs: Project documentation with Markdown - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://github.com/squidfunk/mkdocs-material" rel="noopener noreferrer"&gt;squidfunk/mkdocs-material: A Material Design theme for MkDocs&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;License&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://github.com/peaceiris/mkdocs-material-boilerplate/blob/main/LICENSE" rel="noopener noreferrer"&gt;MIT License&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.flaticon.com/free-icon/graduate-cap_62627" rel="nofollow noopener noreferrer"&gt;The graduate cap icon&lt;/a&gt; made by &lt;a href="https://www.freepik.com/" rel="nofollow noopener noreferrer"&gt;Freepik&lt;/a&gt; from &lt;a href="https://www.flaticon.com/" rel="nofollow noopener noreferrer"&gt;www.flaticon.com&lt;/a&gt; is licensed by &lt;a href="http://creativecommons.org/licenses/by/3.0/" rel="nofollow noopener noreferrer"&gt;CC 3.0 BY&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;About Maintainer&lt;/h2&gt;

&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://peaceiris.com/" rel="nofollow noopener noreferrer"&gt;peaceiris Homepage&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;



&lt;/div&gt;
&lt;br&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/peaceiris/mkdocs-material-boilerplate" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;br&gt;
&lt;/div&gt;
&lt;br&gt;


</description>
      <category>opensource</category>
      <category>boilerplate</category>
      <category>documentation</category>
      <category>staticsitegenerator</category>
    </item>
  </channel>
</rss>
