-
Notifications
You must be signed in to change notification settings - Fork 22
/
azure-pipelines.yml
161 lines (135 loc) · 4.42 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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
trigger:
- develop
jobs:
- job: BuildProductionSite
displayName: 'Build Production Site'
pool:
vmImage: 'ubuntu-latest'
variables:
hugo_version: '0.73.0'
steps:
- checkout: self
persistCredentials: 'true'
clean: 'true'
path: src
displayName: 'Checkout source'
- script: |
git config --global user.email "[email protected]"
git config --global user.name "Rainer"
displayName: 'Git Settings'
- script: |
wget https://github.com/gohugoio/hugo/releases/download/v$(hugo_version)/hugo_extended_$(hugo_version)_Linux-64bit.deb \
-O '$(Pipeline.Workspace)/hugo_$(hugo_version)_Linux-64bit.deb'
sudo dpkg -i $(Pipeline.Workspace)/hugo*.deb
displayName: 'Install Hugo'
- script: |
npm install
workingDirectory: $(Agent.BuildDirectory)/src
displayName: 'Run npm install'
- script: |
hugo
workingDirectory: $(Agent.BuildDirectory)/src
displayName: 'Build prod site'
- task: CopyFiles@2
inputs:
sourceFolder: $(Agent.BuildDirectory)/src/public
targetFolder: $(Agent.TempDirectory)/dist
cleanTargetFolder: true
overWrite: true
displayName: 'Copy build result to temp'
- task: CopyFiles@2
inputs:
contents: .nojekyll
targetFolder: $(Agent.TempDirectory)/dist
cleanTargetFolder: false
overWrite: true
displayName: 'Copy .nojekyll to temp'
- task: CopyFiles@2
inputs:
contents: CNAME
targetFolder: $(Agent.TempDirectory)/dist
cleanTargetFolder: false
overWrite: true
displayName: 'Copy CNAME to temp'
- task: CopyFiles@2
inputs:
contents: azure-pipelines.yml
targetFolder: $(Agent.TempDirectory)/dist
cleanTargetFolder: false
overWrite: true
displayName: 'Copy azure-pipelines to temp'
- task: CopyFiles@2
inputs:
contents: readme.md
targetFolder: $(Agent.TempDirectory)/dist
cleanTargetFolder: false
overWrite: true
displayName: 'Copy readme.md to temp'
- script: |
git clean -fxd
git checkout master
rm -rf *
rm .gitmodules
rm .gitignore
git clean -fxd
displayName: 'Switch to master branch'
- task: CopyFiles@2
inputs:
sourceFolder: $(Agent.TempDirectory)/dist
targetFolder: .
overWrite: true
displayName: 'Copy build results to master branch'
- script: |
git add --all .
git commit -m 'Update website'
git push origin master
displayName: 'Git push master branch'
- job: BuildPreviewSite
displayName: 'Build Preview Site'
pool:
vmImage: 'ubuntu-latest'
variables:
hugo_version: '0.73.0'
target_repository: 'preview-coderdojo-linz'
steps:
- checkout: self
persistCredentials: true
clean: true
path: src
displayName: 'Checkout source'
- script: |
git config --global user.email "[email protected]"
git config --global user.name "Rainer"
displayName: 'Git Settings'
- script: |
wget https://github.com/gohugoio/hugo/releases/download/v$(hugo_version)/hugo_extended_$(hugo_version)_Linux-64bit.deb \
-O '$(Pipeline.Workspace)/hugo_$(hugo_version)_Linux-64bit.deb'
sudo dpkg -i $(Pipeline.Workspace)/hugo*.deb
displayName: 'Install Hugo'
- script: |
npm install
workingDirectory: $(Agent.BuildDirectory)/src
displayName: 'Run npm install'
- script: |
sed -i -e 's/linz.coderdojo.net/linz-preview.coderdojo.net/g' config.toml
hugo -D
workingDirectory: $(Agent.BuildDirectory)/src
displayName: 'Build preview site'
- script: git clone https://$(GitHubPAT)@github.com/coderdojo-linz/$(target_repository).github.io.git dest
workingDirectory: $(Agent.BuildDirectory)
displayName: 'Clone destination preview repo'
- task: CopyFiles@2
inputs:
sourceFolder: $(Agent.BuildDirectory)/src/public
targetFolder: $(Agent.BuildDirectory)/dest
overWrite: true
displayName: 'Copy preview build result to destination'
- script: echo -e linz-preview.coderdojo.net'\n' > CNAME
workingDirectory: $(Agent.BuildDirectory)/dest
displayName: 'Create preview CNAME file for GitHub Pages'
- script: |
git add --all .
git commit -m 'Update website'
git push https://$(GitHubPAT)@github.com/coderdojo-linz/$(target_repository).github.io.git
workingDirectory: $(Agent.BuildDirectory)/dest
displayName: 'Git push preview to destination repo'