mirror of
https://github.com/angular/angular.git
synced 2026-09-14 13:54:52 +08:00
build: publish docs-content based on branch (#10020)
This commit is contained in:
committed by
Joey Perrott
parent
27e33e0144
commit
514fa91418
@@ -19,14 +19,17 @@ if [[ ! ${*} == *--no-build* ]]; then
|
||||
$(npm bin)/gulp docs
|
||||
fi
|
||||
|
||||
# Path to the directory that contains the generated docs output.
|
||||
docsDistPath="./dist/docs"
|
||||
# Path to the project directory.
|
||||
projectPath="$(pwd)"
|
||||
|
||||
# Path to the release output of the @angular/material-examples package.
|
||||
examplesPackagePath="./dist/releases/material-examples"
|
||||
# Path to the directory that contains the generated docs output.
|
||||
docsDistPath="${projectPath}/dist/docs"
|
||||
|
||||
# Path to the cloned docs-content repository.
|
||||
docsContentPath=./tmp/material2-docs-content
|
||||
docsContentPath="${projectPath}/tmp/material2-docs-content"
|
||||
|
||||
# Path to the release output of the @angular/material-examples package.
|
||||
examplesPackagePath="${projectPath}/dist/releases/material-examples"
|
||||
|
||||
# Git clone URL for the material2-docs-content repository.
|
||||
docsContentRepoUrl="https://github.com/angular/material2-docs-content"
|
||||
@@ -34,6 +37,9 @@ docsContentRepoUrl="https://github.com/angular/material2-docs-content"
|
||||
# Current version of Angular Material from the package.json file
|
||||
buildVersion=$(node -pe "require('./package.json').version")
|
||||
|
||||
# Name of the branch that is currently being deployed.
|
||||
branchName=${TRAVIS_BRANCH:-'master'}
|
||||
|
||||
# Additional information about the last commit for docs-content commits.
|
||||
commitSha=$(git rev-parse --short HEAD)
|
||||
commitAuthorName=$(git --no-pager show -s --format='%an' HEAD)
|
||||
@@ -41,15 +47,39 @@ commitAuthorEmail=$(git --no-pager show -s --format='%ae' HEAD)
|
||||
commitMessage=$(git log --oneline -n 1)
|
||||
commitTag="${buildVersion}-${commitSha}"
|
||||
|
||||
buildVersionName="${buildVersion}-${commitSha}"
|
||||
buildTagName="${branchName}-${commitSha}"
|
||||
buildCommitMessage="${branchName} - ${commitMessage}"
|
||||
|
||||
echo "Starting deployment of the docs-content for ${buildVersionName} in ${branchName}"
|
||||
|
||||
# Remove the docs-content repository if the directory exists
|
||||
rm -Rf ${docsContentPath}
|
||||
|
||||
# Clone the docs-content repository.
|
||||
git clone ${docsContentRepoUrl} ${docsContentPath} --depth 1
|
||||
|
||||
echo "Successfully cloned docs-content repository."
|
||||
|
||||
# Go into the repository directory.
|
||||
cd ${docsContentPath}
|
||||
|
||||
echo "Switched into the repository directory."
|
||||
|
||||
if [[ $(git ls-remote --heads origin ${branchName}) ]]; then
|
||||
git checkout ${branchName}
|
||||
echo "Switched to ${branchName} branch."
|
||||
else
|
||||
echo "Branch ${branchName} does not exist on the docs-content repo yet. Creating ${branchName}.."
|
||||
git checkout -b ${branchName}
|
||||
echo "Branch created and checked out."
|
||||
fi
|
||||
|
||||
# Remove everything inside of the docs-content repository.
|
||||
rm -Rf ${docsContentPath}/*
|
||||
|
||||
echo "Removed everything from the docs-content repository. Copying all files into repository.."
|
||||
|
||||
# Create all folders that need to exist in the docs-content repository.
|
||||
mkdir ${docsContentPath}/{overview,guides,api,examples,stackblitz,examples-package}
|
||||
|
||||
@@ -62,7 +92,7 @@ cp -r ${docsDistPath}/stackblitz/* ${docsContentPath}/stackblitz
|
||||
cp -r ${examplesPackagePath}/* ${docsContentPath}/examples-package
|
||||
|
||||
# Copy the license file to the docs-content repository.
|
||||
cp ./LICENSE ${docsContentPath}
|
||||
cp ${projectPath}/LICENSE ${docsContentPath}
|
||||
|
||||
# Copy all immediate children of the markdown output the guides/ directory.
|
||||
for guidePath in $(find ${docsDistPath}/markdown/ -maxdepth 1 -type f); do
|
||||
@@ -74,8 +104,12 @@ for overviewPath in $(find ${docsDistPath}/markdown/ -mindepth 2 -type f); do
|
||||
cp ${overviewPath} ${docsContentPath}/overview
|
||||
done
|
||||
|
||||
# Go into the repository directory.
|
||||
cd ${docsContentPath}
|
||||
echo "Successfully copied all content into the docs-content repository."
|
||||
|
||||
if [[ $(git ls-remote origin "refs/tags/${buildTagName}") ]]; then
|
||||
echo "Skipping publish of docs-content because tag is already published. Exiting.."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Setup the Git configuration
|
||||
git config user.name "$commitAuthorName"
|
||||
@@ -84,7 +118,11 @@ git config credential.helper "store --file=.git/credentials"
|
||||
|
||||
echo "https://${MATERIAL2_DOCS_CONTENT_TOKEN}:@github.com" > .git/credentials
|
||||
|
||||
echo "Credentials for docs-content repository are now set up. Publishing.."
|
||||
|
||||
git add -A
|
||||
git commit --allow-empty -m "${commitMessage}"
|
||||
git tag "${commitTag}"
|
||||
git commit --allow-empty -m "${buildCommitMessage}"
|
||||
git tag "${buildTagName}"
|
||||
git push origin master --tags
|
||||
|
||||
echo "Published docs-content for ${buildVersionName} into ${branchName} successfully"
|
||||
|
||||
Reference in New Issue
Block a user