-
Notifications
You must be signed in to change notification settings - Fork 0
/
azure-pipelines.yml
86 lines (69 loc) · 3.01 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
trigger:
- development
pool:
vmImage: 'Ubuntu-16.04'
steps:
# https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=azdevops&tabs=schema#checkout
- checkout: self
persistCredentials: true # set to 'true' to leave the OAuth token in the Git config after the initial fetch
- task: UseRubyVersion@0 # See: https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/tool/use-ruby-version?view=azdevops
displayName: 'Use Ruby >= 2.5'
- script: 'gem install bundler'
displayName: 'Install Bundler'
- script: 'bundle install'
displayName: 'Install Jekyll and Dependencies'
- script: 'bundle exec jekyll build -d $(Build.ArtifactStagingDirectory)'
displayName: 'Build Jekyll Static Site'
- script: 'cd $(Build.Repository.LocalPath); git checkout master; git checkout -b azure-pipelines-build'
displayName: 'Create Build Branch based on Master'
- script: >
cd $(Build.Repository.LocalPath);
git rm -rf .; git clean -fxd;
touch .nojekyll;
touch README.md;
echo "# My Blog" >> README.md;
displayName: 'Clean Build Branch'
- script: >
git config --global user.email "[email protected]";
git config --global user.name "Matthew Stickler";
displayName: 'Configure Git User'
- script: 'cp -a $(Build.ArtifactStagingDirectory)/. $(Build.Repository.LocalPath)'
displayName: 'Copy Artifact Files to Cleaned Build Branch'
- script: >
cd $(Build.Repository.LocalPath);
git add --all;
git commit -m "Pipelines-Bot: Updated site via $(Build.SourceVersion)";
displayName: 'Create our Commit'
- script: >
cd $(Build.Repository.LocalPath);
git checkout master;
git merge azure-pipelines-build;
git branch -d azure-pipelines-build;
displayName: 'Merge azure-pipelines-build into master'
- script: >
cd $(Build.Repository.LocalPath);
git push origin master;
displayName: 'Push changes to remote'
# Note: github_pat should be configured as an environment variable in devops
# -> create github pat here: https://github.com/settings/tokens
# -> Create environment variable in dev.azure.com under pipelines -> edit (right top) -> variables (right top triple dots) -> called github_pat -> click the lock
- script: |
gh_user="sticklerm3";
gh_pass=$(github_pat);
gh_repo="sticklerm3.github.io/my-siri-ios-shortcuts";
auth_pass=$(echo -n "${gh_user}:$(github_pat)" | base64);
curl https://api.github.com/repos/${gh_user}/${gh_repo}/pages/builds -I \
-X POST \
-H "Accept: application/vnd.github.mister-fantastic-preview+json" \
-H "Authorization: Basic ${auth_pass}"
displayName: '[GitHub] Trigger Page Build'
- script: |
gh_user="sticklerm3";
gh_pass=$(github_pat);
gh_repo="sticklerm3.github.io/my-siri-ios-shortcuts";
auth_pass=$(echo -n "${gh_user}:$(github_pat)" | base64);
curl https://api.github.com/repos/${gh_user}/${gh_repo}/pages/builds/latest -I \
-X GET \
-H "Accept: application/vnd.github.mister-fantastic-preview+json" \
-H "Authorization: Basic $auth_pass"
displayName: '[GitHub] Get Page Build Status'