3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AngularアプリをTravis CIからGitHub Pagesへデプロイする

Last updated at Posted at 2017-07-02

はじめに

Angularでアプリ作ってると公開したくなりますよね?

GitHub Pagesはブランチさえ作れば簡単に公開できるので、とても便利なサービスです。

ただ、毎回手動でデプロイするのは手間がかかるので、Travis CIでテスト通すついでにデプロイまでやってしまいましょう!

準備するもの

  • GitHubアカウント
  • Node.jsのインストール
  • Angular CLIのインストール

手順

1. 新規リポジトリを作成

ここでは仮に、test-appという名前でリポジトリを作成します。
一番下の**「Initialize this ...」**にはチェックを入れておいてください。

image.png

2. GitHub APIトークンの生成

GitHubの「Personal Access Token」からトークンを生成します。

Token descriptionを入力したら、**「repo」**にチェックを入れ、

image.png

**「Generate token」**を押すと、
image.png

APIトークンが生成されます(画像は一例です)。
image.png

APIトークンは後で使うので、ここでコピーしておいてください。

3. Travis CIの設定

Travis CIの「Accounts」から対象となるリポジトリを選択します。

image.png

画像のようにチェックを入れたら、歯車ボタンを押して次の「APIトークンの設定」へ進みましょう。

4. APIトークンの設定

ここでは仮に、GITHUB_TOKENという名前で先程生成したAPIトークンを設定します(画像は一例です)。

image.png

**「Add」**を押すと登録されます。

5. リポジトリをクローン

GitHub Desktopを利用するかgit cloneを実行してリポジトリをクローンしましょう。

image.png

6. Angular CLIで新規アプリを作る

$ ng new test-app

作成後、先程クローンしたリポジトリへtest-app内のファイルを全部コピーしましょう。

7. karma.conf.jsの修正

Travis CIでのユニットテストは、Chromeのヘッドレスモードで実行する必要があるので、設定を変更します。

karma.conf.js
    browsers: ['ChromeHeadless'],

8. protractor.conf.jsの修正

E2EテストもChromeのヘッドレスモードで実行するのでオプションを追加します。

protractor.conf.js
  capabilities: {
    'browserName': 'chrome',
    chromeOptions: {
      args: ['--headless']
    }
  },

9. .travis.ymlの追加

設定ファイルを追加しましょう。

下記の例では、

  • Node.jsのVer.6以降の利用
  • キャッシュ有効化
  • Chromeのインストール
  • Angular CLIのインストール
  • ユニットテストの実行
  • E2Eテストの実行
  • アプリのプロダクションビルド実行
  • GItHub Pagesへデプロイ

のスクリプトを記述しています。

.travis.yml

sudo: false

language: node_js

node_js:
  - "6"
  - "7"
  - node

dist: trusty

cache:
  directories:
    - node_modules

addons:
  apt:
    sources:
      - google-chrome
    packages:
      - google-chrome-stable

before_install:
  - npm install -g @angular/cli

script:
  - ng test --single-run
  - ng e2e
  - ng build --prod --base-href="https://puku0x.github.io/test-app/"

deploy:
  provider: pages
  skip_cleanup: true
  github_token: $GITHUB_TOKEN
  local_dir: dist
  on:
    branch: master

ビルドスクリプト中の--base-hrefには、
https://<ユーザ名>.github.io/<リポジトリ名>/
を設定しましょう。

10. ページにアクセス

デプロイ先にアクセスして、ページが表示されれば完了です。
image.png

終わりに

比較的簡単な設定で、アプリをテストしてデプロイまでできました。

開発周りのツールやサービスはますます便利になっていますね!

もっと簡単にできるよ!という場合はコメントまでどうぞ!

参考URL

https://caveofcode.com/2017/05/publish-an-angular-app-to-github-pages/
https://github.com/puku0x/test-app

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?