Githubアクションを使用したAzure関数の配備


私が作成したとき、私は与えることに決めましたGitHub Actions 展開ツールとしてのスピン、すべての後、私は非常に私はときに気に入った.では、Githubアクションを使用する方法を見てみましょうAzure Function .
Githubのアクションを始めたのは、GITHUBのアクションに新しいのであれば、最初に読むことをお勧めします.

アクションの設定
我々は、我々のGithubアクションファイルを作成することから始めます.github/workflows/devops-workflow.yml 我々のGit Repoで:
name: Build and Deploy
env:
  OUTPUT_PATH: ${{ github.workspace }}/.output
  DOTNET_VERSION: "3.1.100"

on:
  push:
    branches:
      - master

jobs:
出力にはいくつかの環境変数を使います.NETバージョン(私のイメージジェネレータの関数は. NET関数ですが、使用している非NETである場合は必要ありません)、このワークフローはコードがmaster 枝.

ビルドジョブ
それならば.NET関数では、ノードならばコンパイルする必要があります.JPはNPMパッケージをインストールし、Pythonの場合はPIPを使用します.これはビルドジョブの役割が、Azureに展開するために必要な資産を準備することです.
build:
  runs-on: ubuntu-latest
  steps:
  - name: "Checkout"
    uses: actions/checkout@master

  - name: Setup Dotnet ${{ env.DOTNET_VERSION }}
    uses: actions/setup-dotnet@v1
    with:
      dotnet-version: ${{ env.DOTNET_VERSION }}

  - name: Publish functions
    run: dotnet publish --configuration Release --output ${{ env.OUTPUT_PATH }}
これはactions/setup-dotnet@v1 市場からの行動は、正しいバージョンをインストールします.NET(私たちの環境変数に基づいて)と使用します.出力を公開するための. NET CLI.
現在、展開ジョブの出力をパッケージ化するときです.
- name: Package functions
  uses: actions/upload-artifact@v1
  with:
    name: functions
    path: ${{ env.OUTPUT_PATH }}
多田🎉! 配備する準備が整いました.

展開ジョブ
deploy:
  runs-on: ubuntu-latest
  needs: [build]
  env:
    FUNC_APP_NAME: blogimagegenerator
以来deploy 仕事は、からのArtifactを必要としますbuild ジョブを使用して依存関係として設定しますneeds: [build] , それ以外の場合は、関数がビルドされる前に展開します.
steps:
  - name: Download website
    uses: actions/download-artifact@v1
    with:
      name: functions
      path: ${{ env.OUTPUT_PATH }}

  - name: "Login via Azure CLI"
    uses: azure/login@v1
    with:
      creds: ${{ secrets.AZURE_CREDENTIALS }}
使用actions/download-artifact@v1 我々は、出力を得ることができますbuild 仕事とそれから私たちが以前に生成した資格情報を使用してazureにログインする時間です.
パズルの最後の部分は Azure/functions-action@v1 市場からのGithubアクション:
- name: "Run Azure Functions Action"
  uses: Azure/functions-action@v1
  with:
    app-name: ${{ env.FUNC_APP_NAME }}
    package: ${{ env.OUTPUT_PATH }}
これは、我々のアプリケーションとして提供するように展開している関数のアプリの名前が必要ですapp-name パラメータを指定します.FUNC_APP_NAME ).
そして、ワークフローが完了すると、Azureにあなたの機能を展開する準備が整いました.あなたは、フルファイルを見つけることができますon my GitHub 一緒にa recent run あなたが出力に興味があるならば.

結論
53行だけでは、私たちがブランチにプッシュするたびにAzure関数を展開するGithubアクションを作成することができます.
私はそれをどのように行うかをカバーした.あなたが他の言語のヘッドでそれを行う方法をチェックアウトする場合Azure Function docs .