To deploy github pages with [Drone-ci](Drone-ci.md) you will need `.drone.yml` as specified below. You also should define secrets `github_username` and `github_token` (get it [here](https://github.com/settings/tokens)) in your drone's repository setup. Github repository should be named as `yourname.github.io` and it could be accessed at https://yourname.github.io/. Otherwise it'll be available at https://yourname.github.io/repo-name/, what you might not like. You should create branch named `gh-pages` in that repo and setup GH Pages at `https://github.com//.github.io/settings/pages`. This config will update `gh-pages` branch in your project, which will contain only generated content. I know, that's bad, but there's no better way to do that with generic drone plugins. ```yaml kind: pipeline name: build type: docker platform: os: linux arch: amd64 steps: - name: build image: node:16 commands: - yarn - yarn generate - rm -rf ./docs - mv ./.output/public ./docs - touch ./docs/.nojekyll - name: publish image: plugins/gh-pages settings: target_branch: gh-pages username: from_secret: github_username password: from_secret: github_token ``` Here we're moving `./.output/public` to `./docs`, because #nuxt creates symlink for `docs` and git can't work with that. Also we create `.nojekyll` at the root of repo, so github's internal engine won't [ignore files that start with underscore](https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/). ## Additional reading - [Drone Github Pages Documentation](https://plugins.drone.io/plugins/gh-pages) - [Bypassing Jekyll on GitHub Pages](https://github.blog/2009-12-29-bypassing-jekyll-on-github-pages/)