forked from rust-lang/docs.rs
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathazure-pipelines.yml
101 lines (94 loc) · 3.12 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
# Ref: https://aka.ms/yaml
resources:
containers:
- container: debian-jessie
image: onuras/docs.rs:debian-jessie
- container: debian-stretch
image: onuras/docs.rs:debian-stretch
jobs:
- job: test
pool:
vmImage: 'Ubuntu 16.04'
strategy:
matrix:
jessie:
containerResource: debian-jessie
stretch:
containerResource: debian-stretch
container: $[ variables['containerResource'] ]
steps:
- script: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
displayName: 'Install rustc'
- script: |
export PATH=$PATH:$HOME/.cargo/bin
cargo build --verbose
displayName: 'Build docs.rs'
- script: |
export PATH=$PATH:$HOME/.cargo/bin
cargo test --verbose -- --test-threads=1
displayName: 'Test docs.rs'
- job: release
condition: eq(variables['Build.SourceBranch'], 'refs/heads/master')
pool:
vmImage: 'Ubuntu 16.04'
strategy:
matrix:
jessie:
containerResource: debian-jessie
stretch:
containerResource: debian-stretch
container: $[ variables['containerResource'] ]
steps:
- script: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
displayName: 'Install rustc'
- script: |
export PATH=$PATH:$HOME/.cargo/bin
cargo build --verbose --release
displayName: 'Build docs.rs'
- task: CopyFiles@2
inputs:
contents: '$(System.DefaultWorkingDirectory)/templates/**'
targetFolder: $(Build.ArtifactStagingDirectory)
displayName: 'Copy templates'
- task: CopyFiles@2
inputs:
contents: '$(System.DefaultWorkingDirectory)/target/release/cratesfyi'
targetFolder: $(Build.ArtifactStagingDirectory)
displayName: 'Copy build'
- task: PublishBuildArtifacts@1
inputs:
artifactName: $(containerResource)
displayName: 'Upload artifacts'
- job: deploy
dependsOn:
- test
- release
condition: succeeded()
pool:
vmImage: 'Ubuntu 16.04'
container: debian-stretch
steps:
- checkout: none
- task: DownloadBuildArtifacts@0
inputs:
artifactName: debian-jessie
downloadPath: $(System.DefaultWorkingDirectory)
- task: DownloadBuildArtifacts@0
inputs:
artifactName: debian-stretch
downloadPath: $(System.DefaultWorkingDirectory)
- task: DownloadSecureFile@1
inputs:
secureFile: docs.rs.ssh.private.key
- script: tar czfv $(Build.BinariesDirectory)/$(Build.SourceVersion).tar.gz .
displayName: 'Pack build'
- script: |
mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "$(docs.rs.ssh.hostname)" > ~/.ssh/known_hosts
chmod 644 ~/.ssh/known_hosts
eval $(ssh-agent -s)
cat $DOWNLOADSECUREFILE_SECUREFILEPATH | tr -d '\r' | ssh-add - > /dev/null
scp -P $(docs.rs.ssh.port) $(Build.BinariesDirectory)/$(Build.SourceVersion).tar.gz $(docs.rs.ssh.destination):azure-deploys/
ssh -p $(docs.rs.ssh.port) $(docs.rs.ssh.destination) azure-deploys/install-deploy.sh $(Build.SourceVersion)
displayName: 'Upload build into docs.rs and run deploy script'