Deploy your Publish website for free on GitHub Pages

๐Ÿ™ Create a new GitHub repository

First things first, let's create a repository to host your website content.

We'll call it mywebsite , which means it will be accessible at https://yourusername.github.io/mywebsite.

Instead of mywebsite, if you use [yourusername.github.io](http://yourusername.github.io) it will be accessible at https://yourusername.github.io. See https://pages.github.com for more infos about that.


๐ŸŽž Setup the Publish pipeline

Open your main.swift file and add deployedUsing: .gitHub("yourusername/mywebsite") to your publish pipeline, which should look something like this:

try MyWebsite().publish( withTheme: .casperish, deployedUsing: .gitHub("sowenjub/mywebsite"), additionalSteps: [ .installPlugin(.readingTime()), .installPlugin(.pygments()), ], plugins: [.pygments()] )

Now run your site in Xcode (Product > Run command or โŒ˜+R), then open your terminal and run

publish deploy

Head over to your repository, refresh and make sure your files are there.

๐Ÿฅ Setup GitHub Pages

Open your repository settings, scroll down to the GitHub Pages section and select the master branch. Don't forget to click the Save button.


Once you're done, it should give your the address to your website.


And you're done! Unless you want to use a custom domain name, which can be set in the same settings panel.

๐Ÿ’ Bonus: Deploying from Xcode

Instead of deploy using the command line with publish deploy, you can deploy straight from Xcode.

First, create a New Scheme, we'll call it Deploy MyWebsite. Click on it to reopen the same menu and select "Edit Schemeโ€ฆ".


Select Run and in the Arguments Passed On Lauch, add --deploy without space.


Now anytime your Run your website with the scheme (Product > Run command or โŒ˜+R), it will deploy your site to GitHub.

Arnaud Joubay

Arnaud Joubay

Swift & Rails Indie Maker. Original Parasider. Time Knight. 11y Remote/WFH. Half of @teambkry. Creator of cows in App Store featured @nomeat_today. Scuba diver.๐Ÿ‘จโ€๐Ÿ’ป๐Ÿ•๐Ÿ‹๐Ÿฅ๐Ÿฎ๐Ÿ‰๐ŸŒฑ.