зеркало из https://github.com/microsoft/CCF.git
110 строки
3.4 KiB
YAML
110 строки
3.4 KiB
YAML
trigger:
|
|
batch: true
|
|
branches:
|
|
include:
|
|
- main
|
|
- "refs/tags/ccf-*"
|
|
|
|
jobs:
|
|
- job: build_and_publish_docs
|
|
container: ccfciteam/ccf-ci:oe-0.17.6-0-graphviz
|
|
pool:
|
|
vmImage: ubuntu-20.04
|
|
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
|
|
- script: |
|
|
set -ex
|
|
env
|
|
git status
|
|
git rev-parse HEAD
|
|
git checkout -b main $(git rev-parse HEAD)
|
|
displayName: Prepare repo
|
|
|
|
# Used to generate version.py
|
|
- template: .azure-pipelines-templates/cmake.yml
|
|
parameters:
|
|
cmake_args: ""
|
|
|
|
# Only the main branch builds and publishes the versioned documentation.
|
|
# This is because the configuration of the docs (e.g. theme) will change
|
|
# over time and only the main branch should be source of truth and be
|
|
# kept up to date.
|
|
#
|
|
# Only on main and not on PRs
|
|
# Note: override remote whitelist to detect release branches on remote
|
|
- script: |
|
|
set -ex
|
|
python3.8 -m venv env
|
|
source env/bin/activate
|
|
pip install wheel
|
|
pip install -U -r doc/requirements.txt
|
|
pip install -U -e ./python
|
|
pip install -U -r doc/historical_ccf_requirements.txt
|
|
sphinx-multiversion -D smv_remote_whitelist=origin doc build/html
|
|
displayName: Sphinx Multi-version
|
|
condition: |
|
|
and(
|
|
not(eq(variables['Build.Reason'], 'PullRequest')),
|
|
eq(variables['Build.SourceBranch'], 'refs/heads/main')
|
|
)
|
|
|
|
# Only on PRs and not on main (e.g. release branch/tag)
|
|
- script: |
|
|
set -ex
|
|
python3.8 -m venv env
|
|
source env/bin/activate
|
|
pip install wheel
|
|
pip install -U -r doc/requirements.txt
|
|
pip install -U -e ./python
|
|
sphinx-build doc build/html
|
|
displayName: Sphinx Single-version
|
|
condition: |
|
|
or(
|
|
eq(variables['Build.Reason'], 'PullRequest'),
|
|
not(eq(variables['Build.SourceBranch'], 'refs/heads/main'))
|
|
)
|
|
|
|
- script: |
|
|
set -ex
|
|
git init
|
|
git config --local user.name "Azure Pipelines"
|
|
git config --local user.email "azuredevops@microsoft.com"
|
|
git add .
|
|
touch .nojekyll
|
|
git add .nojekyll
|
|
cp ../../doc/index.html .
|
|
git add index.html
|
|
git commit -m "[ci skip] commit generated documentation"
|
|
displayName: "Commit pages"
|
|
workingDirectory: build/html
|
|
|
|
- task: DownloadSecureFile@1
|
|
inputs:
|
|
secureFile: ccf
|
|
displayName: "Get the deploy key"
|
|
|
|
- script: |
|
|
set -ex
|
|
mv $DOWNLOADSECUREFILE_SECUREFILEPATH deploy_key
|
|
chmod 600 deploy_key
|
|
mkdir ~/.ssh
|
|
chmod 700 ~/.ssh
|
|
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
|
|
git remote add origin git@github.com:microsoft/CCF.git
|
|
GIT_SSH_COMMAND="ssh -i deploy_key" git push -f origin HEAD:gh-pages
|
|
displayName: "Publish GitHub Pages"
|
|
condition: |
|
|
and(
|
|
not(eq(variables['Build.Reason'], 'PullRequest')),
|
|
eq(variables['Build.SourceBranch'], 'refs/heads/main')
|
|
)
|
|
workingDirectory: build/html
|
|
|
|
- script: rm deploy_key || true
|
|
displayName: "Make sure key is removed"
|
|
workingDirectory: build/html
|
|
condition: always()
|