Skip to content

Commit 1aaf083

Browse files
committed
Set up CI with Azure Pipelines
1 parent b0cf9b8 commit 1aaf083

File tree

2 files changed

+100
-6
lines changed

2 files changed

+100
-6
lines changed

.travis.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

azure-pipelines.yml

Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
# Ref: https://aka.ms/yaml
2+
3+
resources:
4+
containers:
5+
- container: debian-jessie
6+
image: onuras/docs.rs:debian-jessie
7+
- container: debian-stretch
8+
image: onuras/docs.rs:debian-stretch
9+
10+
11+
jobs:
12+
- job: test
13+
pool:
14+
vmImage: 'Ubuntu 16.04'
15+
strategy:
16+
matrix:
17+
jessie:
18+
containerResource: debian-jessie
19+
stretch:
20+
containerResource: debian-stretch
21+
container: $[ variables['containerResource'] ]
22+
steps:
23+
- script: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
24+
displayName: 'Install rustc'
25+
- script: |
26+
export PATH=$PATH:$HOME/.cargo/bin
27+
cargo build --verbose
28+
displayName: 'Build docs.rs'
29+
- script: |
30+
export PATH=$PATH:$HOME/.cargo/bin
31+
cargo test --verbose -- --test-threads=1
32+
displayName: 'Test docs.rs'
33+
34+
35+
- job: release_build
36+
dependsOn: test
37+
condition: and(succeeded(), eq(variables['Build.SourceBranch'], 'refs/heads/master'))
38+
pool:
39+
vmImage: 'Ubuntu 16.04'
40+
strategy:
41+
matrix:
42+
jessie:
43+
containerResource: debian-jessie
44+
stretch:
45+
containerResource: debian-stretch
46+
container: $[ variables['containerResource'] ]
47+
steps:
48+
- script: curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable
49+
displayName: 'Install rustc'
50+
- script: |
51+
export PATH=$PATH:$HOME/.cargo/bin
52+
cargo build --verbose --release
53+
displayName: 'Build docs.rs'
54+
- task: CopyFiles@2
55+
inputs:
56+
contents: '$(System.DefaultWorkingDirectory)/templates/**'
57+
targetFolder: $(Build.ArtifactStagingDirectory)
58+
displayName: 'Copy templates'
59+
- task: CopyFiles@2
60+
inputs:
61+
contents: '$(System.DefaultWorkingDirectory)/target/release/cratesfyi'
62+
targetFolder: $(Build.ArtifactStagingDirectory)
63+
displayName: 'Copy build'
64+
- task: PublishBuildArtifacts@1
65+
inputs:
66+
artifactName: $(containerResource)
67+
displayName: 'Upload artifacts'
68+
69+
70+
- job: deploy
71+
dependsOn: release_build
72+
condition: succeeded()
73+
pool:
74+
vmImage: 'Ubuntu 16.04'
75+
container: debian-stretch
76+
steps:
77+
- checkout: none
78+
- task: DownloadBuildArtifacts@0
79+
inputs:
80+
artifactName: debian-jessie
81+
downloadPath: $(System.DefaultWorkingDirectory)
82+
- task: DownloadBuildArtifacts@0
83+
inputs:
84+
artifactName: debian-stretch
85+
downloadPath: $(System.DefaultWorkingDirectory)
86+
- task: DownloadSecureFile@1
87+
inputs:
88+
secureFile: docs.rs.ssh.private.key
89+
- script: tar czfv $(Build.BinariesDirectory)/$(Build.SourceVersion).tar.gz .
90+
displayName: 'Pack build'
91+
- script: |
92+
mkdir -p ~/.ssh
93+
chmod 700 ~/.ssh
94+
echo "$(docs.rs.ssh.hostname)" > ~/.ssh/known_hosts
95+
chmod 644 ~/.ssh/known_hosts
96+
eval $(ssh-agent -s)
97+
cat $DOWNLOADSECUREFILE_SECUREFILEPATH | tr -d '\r' | ssh-add - > /dev/null
98+
scp -P $(docs.rs.ssh.port) $(Build.BinariesDirectory)/$(Build.SourceVersion).tar.gz $(docs.rs.ssh.destination):azure-deploys/
99+
ssh -p $(docs.rs.ssh.port) $(docs.rs.ssh.destination) azure-deploys/install-deploy.sh $(Build.SourceVersion)
100+
displayName: 'Upload build into docs.rs and run deploy script'

0 commit comments

Comments
 (0)