forked from Azure/magic-module-specs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
133 lines (118 loc) · 3.93 KB
/
azure-pipelines.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# Ruby
# Package your Ruby project.
# Add steps that install rails, analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/ruby
trigger:
- master
variables:
GENROOT: $(system.defaultWorkingDirectory)/generated
GOPATH: '$(GENROOT)/go' # Go workspace path
GOBIN: '$(GOPATH)/bin' # Go binaries path
GOSRC: '$(GOPATH)/src' # Go source path
TFORG: '$(GOPATH)/src/github.com/terraform-providers'
TFREPO: 'terraform-provider-azurerm'
TFROOT: '$(TFORG)/$(TFREPO)'
TFGITURL: 'https://github.com/VSChina/terraform-provider-azurerm.git'
ASREPO: 'ansible'
ASROOT: '$(GENROOT)/$(ASREPO)'
ASGITURL: 'https://github.com/VSChina/ansible.git'
MMROOT: $(system.defaultWorkingDirectory)/tools/magic-modules
steps:
- bash: |
shopt -s extglob
echo `go env`
echo '##vso[task.prependpath]$(GOBIN)'
if [ ! -d "$(TFORG)" ]
then
mkdir -p "$(TFORG)"
fi
displayName: 'init Go environment'
failOnStderr: true
- bash: |
go get github.com/github/hub
hub version
go get golang.org/x/tools/cmd/goimports
pip install black
displayName: 'install tools'
failOnStderr: false
- bash: |
git clone $(TFGITURL) $(TFROOT)
cd $(TFROOT)
git checkout autogen-pr-$(system.pullRequest.pullRequestNumber) || git checkout -b autogen-pr-$(system.pullRequest.pullRequestNumber)
if [[ $(git branch -a --list 'origin/autogen-pr-$(system.pullRequest.pullRequestNumber)') ]]; then
git pull
fi
displayName: 'clone terraform repository'
failOnStderr: false
- bash: |
git clone $(ASGITURL) $(ASROOT)
cd $(ASROOT)
git checkout autogen-pr-$(system.pullRequest.pullRequestNumber) || git checkout -b autogen-pr-$(system.pullRequest.pullRequestNumber)
if [[ $(git branch -a --list 'origin/autogen-pr-$(system.pullRequest.pullRequestNumber)') ]]; then
git pull
fi
displayName: 'clone ansible repository'
failOnStderr: false
- bash: |
git submodule update --init && \
cd $(MMROOT) && \
gem install bundler && \
bundle install --retry=3 --jobs=4
displayName: 'init magic modules'
failOnStderr: false
- bash: |
git config --global user.email "[email protected]"
git config --global user.name "audevbot"
git config --global credential.helper store
git config --global push.default current
git config --global pull.default current
echo "https://$(GITHUB_USER):$(GITHUB_TOKEN)@github.com" > ~/.git-credentials
displayName: 'git config'
failOnStderr: true
- bash: |
make build && \
make format-terraform
displayName: 'code generation'
failOnStderr: false
- bash: |
cd $(TFROOT)
goimports -w azurerm
make fmt
env:
GOPATH: $(GOPATH)
displayName: 'go import and format'
failOnStderr: false
- bash: |
cd $(TFROOT)
git add -A
git commit -m "Code generation for Terraform."
git push
REPO_URL=$(System.PullRequest.SourceRepositoryURI)
PR_URL=${REPO_URL:0:${#REPO_URL}-4}/pull/$(system.pullRequest.pullRequestNumber)
hub pull-request -F- <<<"Code generation from
magic-module-specs#$(system.pullRequest.pullRequestNumber) for Terraform
Upstream PR: $PR_URL
" || echo "PR exists."
env:
GITHUB_USER: $(GITHUB_USER)
GITHUB_TOKEN: $(GITHUB_TOKEN)
GOPATH: $(GOPATH)
displayName: 'prepare pr for terraform'
failOnStderr: false
- bash: |
cd $(ASROOT)
# run `black` against the directory of ansible if neccessary.
git add -A
git commit -m "Code generation for Ansible."
git push
REPO_URL=$(System.PullRequest.SourceRepositoryURI)
PR_URL=${REPO_URL:0:${#REPO_URL}-4}/pull/$(system.pullRequest.pullRequestNumber)
hub pull-request -F- <<<"Code generation from
magic-module-specs#$(system.pullRequest.pullRequestNumber) for Ansible
Upstream PR: $PR_URL
" || echo "PR exists."
env:
GITHUB_USER: $(GITHUB_USER)
GITHUB_TOKEN: $(GITHUB_TOKEN)
displayName: 'prepare pr for ansible'
failOnStderr: false