ノート: GitHub Actionsは、GitHub Enterprise Server 2.22で限定ベータとして利用可能でした。 ベータは終了しました。 GitHub Actionsは、GitHub Enterprise Server 3.0以降で一般に利用可能になりました。 詳しい情報については、GitHub Enterprise Server 3.0 のリリースノートを参照してください。
- GitHub Enterprise Server 3.0以降へのアップグレードに関する詳しい情報については「GitHub Enterprise Serverのアップグレード」を参照してください。
- アップグレード後のGitHub Actionsの設定に関する詳しい情報については、GitHub Enterprise Server 3.0のドキュメンテーションを参照してください。
ノート: GitHubホストランナーは、現在GitHub Enterprise Serverでサポートされていません。 GitHubパブリックロードマップで、計画されている将来のサポートに関する詳しい情報を見ることができます。
はじめに
このガイドでは、アプリケーションをビルド、テスト、Azure App ServiceへデプロイするためのGitHub Actionsの使い方を説明します。
Azure App Serviceではいくつかの言語でWebアプリケーションを動作させることができますが、このガイドでは既存のNode.jsプロジェクトをデプロイする方法を示します。
必要な環境
GitHub Actionsワークフローを作成する前に、まず以下のセットアップのステップを完了しておかなければなりません。
-
Azure App Serviceプランの作成
たとえば、Azure CLIを使って新しいApp Serviceのプランを作成できます。
Shell az appservice plan create \ --resource-group MY_RESOURCE_GROUP \ --name MY_APP_SERVICE_PLAN \ --is-linux
上のコマンドで、
MY_RESOURCE_GROUP
はすでに存在するAzure Resource Groupに、MY_APP_SERVICE_PLAN
はApp Serviceプランの新しい名前に置き換えてください。Azure CLIの使いからに関する詳しい情報については、Azureのドキュメンテーションを参照してください。
- 認証については「Sign in with Azure CLIを参照してください。
- 新しいリソースグループを作成しなければならない場合は、「az group」を参照してください。
-
Webアプリケーションの作成
たとえば、Azure CLIを使ってnodeのランタイムを持つAzure App Service Webアプリケーションを作成できます。
Shell az webapp create \ --name MY_WEBAPP_NAME \ --plan MY_APP_SERVICE_PLAN \ --resource-group MY_RESOURCE_GROUP \ --runtime "node|10.14"
上のコマンドで、パラメータは自分の値で置き換えてください。
MY_WEBAPP_NAME
はWebアプリケーションの新しい名前です。 -
Azure公開プロフィールを設定して、
AZURE_WEBAPP_PUBLISH_PROFILE
シークレットを作成してください。公開されたプロフィールを使って、Azureのデプロイ資格情報を生成してください。 詳しい情報については、Azureのドキュメンテーションの「デプロイ資格情報を生成する」を参照してください。
GitHubリポジトリで、公開されたプロフィールの内容を含む
AZURE_WEBAPP_PUBLISH_PROFILE
という名前のシークレットを生成してください。 シークレットの作成に関する詳しい情報については「暗号化されたシークレット」を参照してください。 -
For Linux apps, add an app setting called
WEBSITE_WEBDEPLOY_USE_SCM
and set it to true in your app. For more information, see "Configure apps in the portal" in the Azure documentation. -
Optionally, configure a deployment environment. Environments are used to describe a general deployment target like
production
,staging
, ordevelopment
. When a GitHub Actions workflow deploys to an environment, the environment is displayed on the main page of the repository. You can use environments to require approval for a job to proceed, restrict which branches can trigger a workflow, or limit access to secrets. For more information about creating environments, see "Using environments for deployment."
ワークフローの作成
必要な環境を整えたら、ワークフローの作成に進むことができます。
The following example workflow demonstrates how to build, test, and deploy the Node.js project to Azure App Service when a release is created.
ワークフローのenv
キー中のAZURE_WEBAPP_NAME
を、作成したWebアプリケーションの名前に設定してください。 You can also change AZURE_WEBAPP_PACKAGE_PATH
if the path to your project is not the repository root and NODE_VERSION
if you want to use a node version other than 10.x
.
If you configured a deployment environment, change the value of environment
to be the name of your environment. If you did not configure an environment, delete the environment
key.
# このワークフローはGitHubによって認定されていないアクションを使用します。
# それらはサードパーティによって提供され、
# 別個の利用規約、プライバシーポリシー、
# サポートドキュメンテーションが適用されます。
on:
release:
types: [created]
env:
AZURE_WEBAPP_NAME: MY_WEBAPP_NAME # set this to your application's name
AZURE_WEBAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root
NODE_VERSION: '10.x' # set this to the node version to use
jobs:
build-and-deploy:
name: Build and Deploy
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v2
- name: Use Node.js ${{ env.NODE_VERSION }}
uses: actions/setup-node@v2
with:
node-version: ${{ env.NODE_VERSION }}
- name: npm install, build, and test
run: |
# Build and test the project, then
# deploy to Azure Web App.
npm install
npm run build --if-present
npm run test --if-present
- name: 'Deploy to Azure WebApp'
uses: azure/webapps-deploy@0b651ed7546ecfc75024011f76944cb9b381ef1e
with:
app-name: ${{ env.AZURE_WEBAPP_NAME }}
publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
package: ${{ env.AZURE_WEBAPP_PACKAGE_PATH }}
追加リソース
以下のリソースも役に立つでしょう。
- For the original starter workflow, see
azure.yml
in the GitHub Actionsstarter-workflows
repository. - Webアプリケーションのデプロイに使われたアクションは、公式のAzure
Azure/webapps-deploy
アクションです。 - For more examples of GitHub Action workflows that deploy to Azure, see the actions-workflow-samples repository.
- Azure web appドキュメンテーション中の「Azure で Node.js Web アプリを作成する」クイックスタートは、Azure App ServiceエクステンションとともにVS Codeを利用する方法を示しています。