빌드 시 Electron 앱을 GitHub에 배포하기

0

이 글에서는 electron-builder를 이용해 Electron 앱을 빌드하고 GitHub에 자동으로 배포하는 방법을 소개한다.

먼저 electron-builder를 설치해야 한다:

npm install --save-dev electron-builder

그런 다음 package.json에 아래와 같이 repository와 build 옵션을 추가한다:

// package.json
{
    "name": "{ name }",
    "version": "{ version }",
    ...
    "repository": {
        "type": "git",
        "url": "{ repository url }"
    },
    "build": {
        "appID": "{ appID }",
        ...
        "publish": {
            "provider": "github",
            "host": "{ github.com }",
            "owner": "{ github username }",
            "repo": "{ repository name }",
            "releaseType": "draft",
        },
        "releaseInfo": {
            "releaseNotesFile": "release-notes.md",
        }
    }
}

releaseType은 “draft”, “prerelease”, “release” 중 하나로, 릴리스의 종류를 나타낸다. “draft”를 선택하면 원격 저장소에서 릴리스를 직접 게시해야 한다.

releaseInfo는 릴리스 업데이트를 요약하는 “releaseName”, “releaseNotes”, “releaseNotesFile”, “releaseDate” 값을 포함한다.

Vue와 함께 쓰는 Electron-builder

Vue와 함께 Electron을 사용하는 경우, 아래와 같이 vue.config.js에서 builder를 설정해야 한다:

module.exports = defineConfig({
    ...
    pluginOptions: {
        electronBuilder: {
            builderOptions: {
                appId: "{ appID }",
                ...
                "publish": {
                    "provider": "github",
                    "host": "{ github.com }",
                    "owner": "{ github username }",
                    "repo": "{ repository name }",
                    "releaseType": "draft",
                },
                "releaseInfo": {
                    "releaseNotesFile": "release-notes.md",
                }
            }
        }
    },
    ...
})

배포

릴리스를 배포하려면 publish 인자(-p 또는 --publish)를 사용하여 아래 명령을 실행한다:

vue-cli-service electron:build --publish always

always는 현재 빌드를 강제로 배포한다. 선택지는 “onTag”, “onTagOrDraft”, “always”, “never”이다. 1

NPM 스크립트를 사용하는 경우에는 다음과 같이 실행한다:

npm run [build script] -- -p always

--는 뒤따르는 인자들을 스크립트로 전달하게 한다. GH_TOKEN 환경 변수가 설정되어 있는지 반드시 확인한다.