Skip to main content
  1. Aws/

1.AWS CodeBuild安裝與設定

·211 words·1 min·
Table of Contents

參考文件: https://docs.aws.amazon.com/codebuild/latest/userguide/getting-started.html

基本上大部分設定都維持預設值,以下提供須注意的事項
#

1. 來源
#

這裡的來源設定基本上同CodePipeline中的來源,就是指定repository與branch

2. 環境
#

這裡是關於在何種環境下建置專案,如果像是c#這類需要編譯的語言,就要設定好環境

  1. 首先有兩個方式,一個是Docker(可以使用已經安裝好的環境),另一個則是使用AWS的受管映像(可以理解成基本的環境)

    因無自己建置好的docker,這裡使用受管映像

  2. 選擇作業系統、runtime、image(映像)

    這裡的image需要注意支援語言版本,例如.net core 3.1最高只能使用到aws/codebuild/standard:5.0

    更多對照請看: https://docs.aws.amazon.com/codebuild/latest/userguide/available-runtimes.html

  3. 選擇服務角色,這裡建議第一次設定使用"新增服務角色",因所需權限不確定,不建議自行建立

  4. 其他組態:

    目前唯二需要設定的:

    1. VPC: 選擇對應環境的VPC
    2. 運算: 依據建置專案大小設定,應該會影響費用

3. Buildspec
#

這也是最重要的部分,指定了環境安裝或設定、專案的建置與產出的文件位置格式

若有多組buildspec,可以在這裡指定Buildspec名稱

這裡分兩種方式:

  1. 使用buildspec檔案: 從原始碼中讀取buildspec
  2. 插入建置命令: 另外設定buildspec

codebuild buildspec desc

如果選擇"使用buildspec檔案",buildspec.yml要存放在專案原始碼資料夾的最上層,以下為參考結構:

(root directory name)
    |-- pom.xml
    |-- buildspec.yml
    `-- src
         |-- main
         |     `-- java
         |           `-- MessageUtil.java
         `-- test
               `-- java
                     `-- TestMessageUtil.java

buildspec設定參考:

version: 0.2

#env:
  #variables:
     # key: "value"
     # key: "value"
  #parameter-store:
     # key: "value"
     # key: "value"
  #secrets-manager:
     # key: secret-id:json-key:version-stage:version-id
     # key: secret-id:json-key:version-stage:version-id
  #exported-variables:
     # - variable
     # - variable
  #git-credential-helper: yes
#batch:
  #fast-fail: true
  #build-list:
  #build-matrix:
  #build-graph:
phases:
  install:
    #如果使用 Ubuntu 標準映像 2.0 或更新版本,您必須指定執行時間版本。
    #如果指定執行時間版本且使用非 Ubuntu 標準映像 2.0 的映像,建置會失敗。
    runtime-versions:
      dotnet: 3.1
      # name: version
    #commands:
      # - command
      # - command
  pre_build:
    commands:
      - echo Restore started on `date`
      - dotnet restore <project>.csproj
  build:
    commands:
      - echo Build started on `date`
      - dotnet build <project>.csproj
  post_build:
    commands:
      - echo Publish started on `date`
      - dotnet publish -c Debug -o ./build_output
#reports:
  #report-name-or-arn:
    #files:
      # - location
      # - location
    #base-directory: location
    #discard-paths: yes
    #file-format: JunitXml | CucumberJson
artifacts:
 files:
    - build_output/**/*
    - scripts/**/*
    - appspec.yml
    # - location
  #name: $(date +%Y-%m-%d)
  #discard-paths: yes
  #base-directory: location
#cache:
  #paths:
    # - paths

更多說明文件請參考: https://docs.aws.amazon.com/codebuild/latest/userguide/getting-started-create-build-spec-console.html

4. 成品(選用)
#

專案建置完成後,可以將建置結果存於S3上,以利觀察或驗證

codebuild 成品

Related