未验证 提交 ccf9a684 编写于 作者: L Luke Kim 提交者: GitHub

Use Makefiles to build and add support for ARM builds (#51)

上级 fa848812
......@@ -13,73 +13,106 @@ jobs:
parameters:
poolImage: macOS-latest
targetOS: darwin
targetArch: amd64
binaryName: action
- template: 'build-binary-template.yml'
parameters:
poolImage: macOS-latest
targetOS: darwin
targetArch: amd64
binaryName: assigner
- template: 'build-binary-template.yml'
parameters:
poolImage: macOS-latest
targetOS: darwin
targetArch: amd64
binaryName: controller
- template: 'build-binary-template.yml'
parameters:
poolImage: macOS-latest
targetOS: linux
targetArch: arm
binaryName: action
- template: 'build-binary-template.yml'
parameters:
poolImage: macOS-latest
targetOS: linux
targetArch: arm
binaryName: assigner
- template: 'build-binary-template.yml'
parameters:
poolImage: macOS-latest
targetOS: linux
targetArch: arm
binaryName: controller
- template: 'build-binary-template.yml'
parameters:
poolImage: ubuntu-latest
targetOS: linux
targetArch: amd64
binaryName: action
- template: 'build-binary-template.yml'
parameters:
poolImage: ubuntu-latest
targetOS: linux
targetArch: amd64
binaryName: assigner
- template: 'build-binary-template.yml'
parameters:
poolImage: ubuntu-latest
targetOS: linux
targetArch: amd64
binaryName: controller
- template: 'build-binary-template.yml'
parameters:
poolImage: windows-2019
targetOS: windows
targetArch: amd64
binaryName: action
- template: 'build-binary-template.yml'
parameters:
poolImage: windows-2019
targetOS: windows
targetArch: amd64
binaryName: assigner
- template: 'build-binary-template.yml'
parameters:
poolImage: windows-2019
targetOS: windows
targetArch: amd64
binaryName: controller
- job: 'publish_edge_binaries'
pool:
vmImage: 'windows-2019'
dependsOn:
- build_action_darwin
- build_assigner_darwin
- build_controller_darwin
- build_action_linux
- build_assigner_linux
- build_controller_linux
- build_action_windows
- build_assigner_windows
- build_controller_windows
- build_darwin_amd64_action
- build_darwin_amd64_assigner
- build_darwin_amd64_controller
- build_linux_amd64_action
- build_linux_amd64_assigner
- build_linux_amd64_controller
- build_linux_arm_action
- build_linux_arm_assigner
- build_linux_arm_controller
- build_windows_amd64_action
- build_windows_amd64_assigner
- build_windows_amd64_controller
condition: |
and
(
eq(variables['Build.SourceBranch'], 'refs/heads/master'),
eq(dependencies.build_action_darwin.result, 'Succeeded'),
eq(dependencies.build_assigner_darwin.result, 'Succeeded'),
eq(dependencies.build_controller_darwin.result, 'Succeeded'),
eq(dependencies.build_action_linux.result, 'Succeeded'),
eq(dependencies.build_assigner_linux.result, 'Succeeded'),
eq(dependencies.build_controller_linux.result, 'Succeeded'),
eq(dependencies.build_action_windows.result, 'Succeeded'),
eq(dependencies.build_assigner_windows.result, 'Succeeded'),
eq(dependencies.build_controller_windows.result, 'Succeeded')
eq(dependencies.build_darwin_amd64_action.result, 'Succeeded'),
eq(dependencies.build_darwin_amd64_assigner.result, 'Succeeded'),
eq(dependencies.build_darwin_amd64_controller.result, 'Succeeded'),
eq(dependencies.build_linux_amd64_action.result, 'Succeeded'),
eq(dependencies.build_linux_amd64_assigner.result, 'Succeeded'),
eq(dependencies.build_linux_amd64_controller.result, 'Succeeded'),
eq(dependencies.build_linux_arm_action.result, 'Succeeded'),
eq(dependencies.build_linux_arm_assigner.result, 'Succeeded'),
eq(dependencies.build_linux_arm_controller.result, 'Succeeded'),
eq(dependencies.build_windows_amd64_action.result, 'Succeeded'),
eq(dependencies.build_windows_amd64_assigner.result, 'Succeeded'),
eq(dependencies.build_windows_amd64_controller.result, 'Succeeded')
)
steps:
- task: DownloadPipelineArtifact@2
......
parameters:
poolImage: 'macOS-latest'
targetOS: 'darwin'
targetArch: 'amd64'
binaryName: 'action'
jobs:
- job: build_${{ parameters.binaryName }}_${{ parameters.targetOS }}
- job: build_${{ parameters.targetOS }}_${{ parameters.targetArch }}_${{ parameters.binaryName }}
variables:
GOOS: ${{ parameters.targetOS }}
GOARCH: amd64
GOARCH: ${{ parameters.targetArch }}
pool:
vmImage: '${{ parameters.poolImage }}'
steps:
......@@ -21,45 +22,53 @@ jobs:
targetType: 'inline'
script: |
mkdir -p '$(GOPATH)/pkg'
mkdir -p '$(GOPATH)/bin'
mkdir -p '$(modulePath)'
shopt -s extglob
mv !(gopath) '$(modulePath)'
echo '##vso[task.prependpath]$(GOBIN)'
- task: Bash@3
displayName: 'Install dep'
inputs:
targetType: 'inline'
script: |
curl https://raw.githubusercontent.com/golang/dep/master/install.sh | sh
- task: Go@0
displayName: 'Run go get documentdb'
inputs:
command: 'get'
arguments: '-u github.com/a8m/documentdb-go'
workingDirectory: '$(modulePath)/cmd/${{ parameters.binaryName }}'
- task: Go@0
displayName: 'Run go get'
- task: CmdLine@2
displayName: 'Run make deps'
inputs:
command: 'get'
arguments: '-v -t -d ./...'
workingDirectory: '$(modulePath)/cmd/${{ parameters.binaryName }}'
script: 'make deps'
workingDirectory: '$(modulePath)'
failOnStderr: true
- task: CmdLine@2
displayName: 'Run go test'
displayName: 'Run make test'
condition: ne('${{ parameters.targetArch }}', 'arm')
inputs:
script: 'make test'
workingDirectory: '$(modulePath)'
failOnStderr: true
- task: Go@0
displayName: 'Run go build'
- task: CmdLine@2
displayName: 'Run make build'
inputs:
command: 'build'
arguments: '-v -o $(Build.BinariesDirectory)/${{ parameters.targetOS }}/${{ parameters.binaryName }}'
workingDirectory: '$(modulePath)/cmd/${{ parameters.binaryName }}'
script: 'make build TARGETS=${{ parameters.targetOS }} ARCH=$(GOARCH)'
workingDirectory: '$(modulePath)'
failOnStderr: true
- task: ArchiveFiles@2
displayName: 'Build ${{ parameters.binaryName }}_${{ parameters.targetOS }}.zip'
displayName: 'Build $(GOARCH)/${{ parameters.binaryName }}_${{ parameters.targetOS }}.zip'
inputs:
rootFolderOrFile: '$(Build.BinariesDirectory)/${{ parameters.targetOS }}'
rootFolderOrFile: '$(modulePath)/dist/${{ parameters.targetOS }}_$(GOARCH)'
includeRootFolder: false
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.targetOS }}/${{ parameters.binaryName }}_${{ parameters.targetOS }}.zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/${{ parameters.targetOS }}_$(GOARCH)/${{ parameters.binaryName }}_${{ parameters.targetOS }}_$(GOARCH).zip'
replaceExistingArchive: true
- task: PublishBuildArtifacts@1
displayName: 'Publish build artifacts'
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ parameters.targetOS }}'
PathtoPublish: '$(Build.ArtifactStagingDirectory)/${{ parameters.targetOS }}_$(GOARCH)'
ArtifactName: 'drop'
publishLocation: 'Container'
# actionscore/actions github release pipeline
variables:
ReleaseIteration: ''
ReleaseVersion: ''
ReleaseTitle: 'Actions Runtime $(ReleaseVersion) Release'
pool:
vmImage: 'macOS-latest'
steps:
- task: DownloadPipelineArtifact@2
inputs:
buildType: 'specific'
project: 'bf44e908-7feb-4695-9882-2ec74aa9f834'
definition: '5'
specificBuildWithTriggering: true
buildVersionToDownload: 'latest'
artifactName: 'drop'
itemPattern: '**/.zip'
targetPath: '$(Pipeline.Workspace)'
- task: GitHubRelease@0
inputs:
gitHubConnection: 'GitHub'
repositoryName: '$(Build.Repository.Name)'
action: 'create'
target: '$(ReleaseVersion)'
tagSource: 'manual'
tag: '$(ReleaseIteration)'
title: '$(ReleaseTitle)'
assets: $(Pipeline.Workspace)
releaseNotesFile: '$(ReleaseNotesFilePath)'
isPreRelease: true
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册