Publish 사용하기 part 3

Swift publish 배포하기

Publish 배포 준비하기

일단 배포 준비를 하기 위해서는 publish pipeline에서 수정할 부분이 있습니다.

// This will generate your website using the built-in Foundation theme:
try Example().publish(using: [
    .optional(.copyResources()),
    .addMarkdownFiles(),
    .generateHTML(withTheme: .publish),
    .generateRSSFeed(including: [.blog]),
    .generateSiteMap(),
    /// Deploy 관련
    .deploy(using: ///배포 방식 )
])

기존에 만든 pipeline에서 deploy(using:) 메서드를 추가해줍니다.

static func gitHub(
    _ repository: String,
    branch: String = "master",
    useSSH: Bool = true
) -> DeploymentMethod<Example>
  • repository: 프로젝트 Repository
  • branch: 배포할 Branch
  • useSSH: SSH 키를 사용하는지 여부
.deploy(using: .git("git@ios.github.com:jihoonahn/ExamplePublish", branch: "gh-pages"))

저는 ssh키를 여러개를 사용하는 관계로 그냥 git으로 작성 하였습니다.

그리고 Website 부분에서

struct Example: Website {
    enum SectionID: String, WebsiteSectionID {
        case blog
        case about
        var name: String {
            switch self {
            case .blog: return "Blog"
            case .about: return "About"
            }
        }
    }

    struct ItemMetadata: WebsiteItemMetadata {
        // Add any site-specific metadata that you want to use here.
    }

    // Update these properties to configure your website:
    var url = URL(string: /* URL 값 입력 */ )!
    var name = "Example"
    var description = "A description of Part"
    var language: Language { .english }
    var imagePath: Path? { nil }
}

URL 값을 입력해줍니다.

var url = URL(string: "https://jihoonahn.github.io/")!

Publish CLI를 보게 되면

Publish Command Line Interface
------------------------------
Interact with the Publish static site generator from
the command line, to create new websites, or to generate
and deploy existing ones.

Available commands:

- new: Set up a new website in the current folder.
- generate: Generate the website in the current folder.
- run: Generate and run a localhost server on default port 8000
       for the website in the current folder. Use the "-p"
       or "--port" option for customizing the default port.
- deploy: Generate and deploy the website in the current
       folder, according to its deployment method.

이런식으로 deploy 관련 커맨드가 있습니다.

$ publish generate
$ publish deploy

이렇게 명령어를 순차적으로 작성하게 되면,

이렇게 Deploy가 완료가 됬다는 내용과 함께

  • ❌ 포스트 올라간 후에 삭제될 Repository입니다.

이렇게 gh-pages에 잘 배포가 되는것을 확인 할 수 있습니다.

위에서 진행한 내용은 예시코드 를 확인할 수 있습니다.


이번 글에서는 Publish에서 Deploy 하는 방법에 대해서 알아보면서, 총 publish를 사용하는 방법에 대해서 3개로 파트를 나눠서 제작을 하였습니다. 여러분도 한번 Publish로 자기만의 blog를 만들어 보는것은 어떤가요?