-
Notifications
You must be signed in to change notification settings - Fork 2.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Implement docusaurus build, deployment and CI hooks (#129)
* Implement docs build, deployment and CI hooks * Fixup travis config * Update references to final domain choice
- Loading branch information
1 parent
b24bfe7
commit 2277b5b
Showing
29 changed files
with
545 additions
and
25 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,34 +1,51 @@ | ||
dist: bionic | ||
sudo: required | ||
language: rust | ||
services: | ||
- docker | ||
|
||
notifications: | ||
email: false | ||
|
||
cache: | ||
cargo: true | ||
directories: | ||
- "~/.npm" | ||
notifications: | ||
email: false | ||
- "~/.npm" | ||
|
||
install: | ||
- cargo --version | ||
- rustup install nightly | ||
- rustup component add clippy --toolchain nightly | ||
- docker --version | ||
- wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - | ||
- sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main" | ||
- sudo apt-get update | ||
- sudo apt-get install -y clang-7 --allow-unauthenticated | ||
- sudo apt-get install -y openssl --allow-unauthenticated | ||
- sudo apt-get install -y libssl-dev --allow-unauthenticated | ||
- sudo apt-get install -y libssl1.1 --allow-unauthenticated | ||
- clang-7 --version | ||
- nvm install node | ||
- node --version | ||
services: | ||
- docker | ||
|
||
jobs: | ||
include: | ||
- stage: "Test Programs" | ||
script: ./ci/memo.sh | ||
- script: ./ci/token-swap.sh | ||
- script: ./ci/token.sh | ||
- name: "Test Memo" | ||
language: rust | ||
install: | ||
source .travis/install-program-deps.sh | ||
script: | ||
./ci/memo.sh | ||
|
||
- name: "Test Token-Swap" | ||
language: rust | ||
install: | ||
source .travis/install-program-deps.sh | ||
script: | ||
./ci/token-swap.sh | ||
|
||
- name: "Test Token Program" | ||
language: rust | ||
install: | ||
source .travis/install-program-deps.sh | ||
script: | ||
./ci/token.sh | ||
|
||
|
||
# docs pull request or commit to master | ||
- name: "Build Docs" | ||
if: type IN (push, pull_request) AND branch = master | ||
language: node_js | ||
node_js: | ||
- "node" | ||
|
||
before_install: | ||
- .travis/affects.sh docs/ .travis || travis_terminate 0 | ||
- cd docs/ | ||
- source .travis/before_install.sh | ||
script: | ||
- source .travis/script.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
#!/usr/bin/env bash | ||
# | ||
# Check if files in the commit range match one or more prefixes | ||
# | ||
|
||
( | ||
set -x | ||
git diff --name-only "$TRAVIS_COMMIT_RANGE" | ||
) | ||
|
||
for file in $(git diff --name-only "$TRAVIS_COMMIT_RANGE"); do | ||
for prefix in "$@"; do | ||
if [[ $file =~ ^"$prefix" ]]; then | ||
exit 0 | ||
fi | ||
done | ||
done | ||
|
||
echo "No modifications to $*" | ||
exit 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# |source| this file | ||
|
||
cargo --version | ||
rustup install nightly | ||
rustup component add clippy --toolchain nightly | ||
docker --version | ||
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add - | ||
sudo apt-add-repository "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-10 main" | ||
sudo apt-get update | ||
sudo apt-get install -y clang-7 --allow-unauthenticated | ||
sudo apt-get install -y openssl --allow-unauthenticated | ||
sudo apt-get install -y libssl-dev --allow-unauthenticated | ||
sudo apt-get install -y libssl1.1 --allow-unauthenticated | ||
clang-7 --version | ||
nvm install node | ||
node --version |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
# | ||
# Normalized CI environment variables | ||
# | ||
# |source| me | ||
# | ||
|
||
if [[ -n $CI ]]; then | ||
export CI=1 | ||
if [[ -n $TRAVIS ]]; then | ||
export CI_BRANCH=$TRAVIS_BRANCH | ||
export CI_BASE_BRANCH=$TRAVIS_BRANCH | ||
export CI_BUILD_ID=$TRAVIS_BUILD_ID | ||
export CI_COMMIT=$TRAVIS_COMMIT | ||
export CI_JOB_ID=$TRAVIS_JOB_ID | ||
if [[ $TRAVIS_PULL_REQUEST != false ]]; then | ||
export CI_PULL_REQUEST=true | ||
else | ||
export CI_PULL_REQUEST= | ||
fi | ||
export CI_OS_NAME=$TRAVIS_OS_NAME | ||
export CI_REPO_SLUG=$TRAVIS_REPO_SLUG | ||
export CI_TAG=$TRAVIS_TAG | ||
elif [[ -n $BUILDKITE ]]; then | ||
export CI_BRANCH=$BUILDKITE_BRANCH | ||
export CI_BUILD_ID=$BUILDKITE_BUILD_ID | ||
export CI_COMMIT=$BUILDKITE_COMMIT | ||
export CI_JOB_ID=$BUILDKITE_JOB_ID | ||
# The standard BUILDKITE_PULL_REQUEST environment variable is always "false" due | ||
# to how solana-ci-gate is used to trigger PR builds rather than using the | ||
# standard Buildkite PR trigger. | ||
if [[ $CI_BRANCH =~ pull/* ]]; then | ||
export CI_BASE_BRANCH=$BUILDKITE_PULL_REQUEST_BASE_BRANCH | ||
export CI_PULL_REQUEST=true | ||
else | ||
export CI_BASE_BRANCH=$BUILDKITE_BRANCH | ||
export CI_PULL_REQUEST= | ||
fi | ||
export CI_OS_NAME=linux | ||
if [[ -n $BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG ]]; then | ||
# The solana-secondary pipeline should use the slug of the pipeline that | ||
# triggered it | ||
export CI_REPO_SLUG=$BUILDKITE_ORGANIZATION_SLUG/$BUILDKITE_TRIGGERED_FROM_BUILD_PIPELINE_SLUG | ||
else | ||
export CI_REPO_SLUG=$BUILDKITE_ORGANIZATION_SLUG/$BUILDKITE_PIPELINE_SLUG | ||
fi | ||
# TRIGGERED_BUILDKITE_TAG is a workaround to propagate BUILDKITE_TAG into | ||
# the solana-secondary pipeline | ||
if [[ -n $TRIGGERED_BUILDKITE_TAG ]]; then | ||
export CI_TAG=$TRIGGERED_BUILDKITE_TAG | ||
else | ||
export CI_TAG=$BUILDKITE_TAG | ||
fi | ||
elif [[ -n $APPVEYOR ]]; then | ||
export CI_BRANCH=$APPVEYOR_REPO_BRANCH | ||
export CI_BUILD_ID=$APPVEYOR_BUILD_ID | ||
export CI_COMMIT=$APPVEYOR_REPO_COMMIT | ||
export CI_JOB_ID=$APPVEYOR_JOB_ID | ||
if [[ -n $APPVEYOR_PULL_REQUEST_NUMBER ]]; then | ||
export CI_PULL_REQUEST=true | ||
else | ||
export CI_PULL_REQUEST= | ||
fi | ||
if [[ $CI_LINUX = True ]]; then | ||
export CI_OS_NAME=linux | ||
else | ||
export CI_OS_NAME=windows | ||
fi | ||
export CI_REPO_SLUG=$APPVEYOR_REPO_NAME | ||
export CI_TAG=$APPVEYOR_REPO_TAG_NAME | ||
fi | ||
else | ||
export CI= | ||
export CI_BRANCH= | ||
export CI_BUILD_ID= | ||
export CI_COMMIT= | ||
export CI_JOB_ID= | ||
export CI_OS_NAME= | ||
export CI_PULL_REQUEST= | ||
export CI_REPO_SLUG= | ||
export CI_TAG= | ||
fi | ||
|
||
cat <<EOF | ||
CI=$CI | ||
CI_BRANCH=$CI_BRANCH | ||
CI_BUILD_ID=$CI_BUILD_ID | ||
CI_COMMIT=$CI_COMMIT | ||
CI_JOB_ID=$CI_JOB_ID | ||
CI_OS_NAME=$CI_OS_NAME | ||
CI_PULL_REQUEST=$CI_PULL_REQUEST | ||
CI_TAG=$CI_TAG | ||
EOF |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
# Dependencies | ||
/node_modules | ||
|
||
# Production | ||
/build | ||
|
||
# Generated files | ||
.docusaurus | ||
.cache-loader | ||
.vercel | ||
vercel.json | ||
|
||
# Misc | ||
.DS_Store | ||
.env.local | ||
.env.development.local | ||
.env.test.local | ||
.env.production.local | ||
|
||
npm-debug.log* | ||
yarn-debug.log* | ||
yarn-error.log* |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# |source| this file | ||
|
||
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - | ||
sudo apt install -y nodejs | ||
|
||
npm install --global docusaurus-init | ||
docusaurus-init | ||
|
||
npm install --global vercel |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
# |source| this file | ||
|
||
set -ex | ||
./build.sh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Docs Readme | ||
|
||
SPL Docs are built using [Docusaurus 2](https://v2.docusaurus.io/) with `npm`. | ||
Static content delivery is handled using `vercel`. | ||
|
||
### Installing Docusaurus | ||
|
||
``` | ||
$ npm install | ||
``` | ||
|
||
### Local Development | ||
|
||
This command starts a local development server and open up a browser window. | ||
Most changes are reflected live without having to restart the server. | ||
|
||
``` | ||
$ npm run start | ||
``` | ||
|
||
### Build Locally | ||
|
||
This command generates static content into the `build` directory and can be | ||
served using any static contents hosting service. | ||
|
||
``` | ||
$ docs/build.sh | ||
``` | ||
|
||
### CI Build Flow | ||
The docs are built and published in Travis CI with the `docs/build.sh` script. | ||
On each PR, the docs are built, but not published. | ||
|
||
In each post-commit build, docs are built and published using `vercel`. | ||
|
||
Documentation is published to spl.solana.com |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
module.exports = { | ||
presets: [require.resolve("@docusaurus/core/lib/babel/preset")], | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
#!/usr/bin/env bash | ||
set -ex | ||
|
||
cd "$(dirname "$0")" | ||
|
||
# shellcheck source=ci/env.sh | ||
source ../ci/env.sh | ||
|
||
# Build from /src into /build | ||
npm run build | ||
|
||
# Publish only from merge commits and release tags | ||
if [[ -n $CI ]]; then | ||
if [[ -z $CI_PULL_REQUEST ]]; then | ||
./publish-docs.sh | ||
fi | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
module.exports = { | ||
title: "Solana Program Library Docs", | ||
tagline: | ||
"Solana is an open source project implementing a new, high-performance, permissionless blockchain.", | ||
url: "https://spl.docs.solana.com", | ||
baseUrl: "/", | ||
favicon: "img/favicon.ico", | ||
organizationName: "solana-labs", // Usually your GitHub org/user name. | ||
projectName: "solana-program-library", // Usually your repo name. | ||
themeConfig: { | ||
navbar: { | ||
logo: { | ||
alt: "Solana Logo", | ||
src: "img/logo-horizontal.svg", | ||
srcDark: "img/logo-horizontal-dark.svg", | ||
}, | ||
}, | ||
footer: { | ||
style: "dark", | ||
links: [ | ||
{ | ||
title: "Community", | ||
items: [ | ||
{ | ||
label: "Discord", | ||
href: "https://discordapp.com/invite/pquxPsq", | ||
}, | ||
{ | ||
label: "Twitter", | ||
href: "https://twitter.com/solana", | ||
}, | ||
{ | ||
label: "Forums", | ||
href: "https://forums.solana.com", | ||
}, | ||
], | ||
}, | ||
{ | ||
title: "More", | ||
items: [ | ||
{ | ||
label: "GitHub", | ||
href: "https://github.com/solana-labs/solana-program-library", | ||
}, | ||
], | ||
}, | ||
], | ||
copyright: `Copyright © ${new Date().getFullYear()} Solana Foundation`, | ||
}, | ||
}, | ||
presets: [ | ||
[ | ||
"@docusaurus/preset-classic", | ||
{ | ||
docs: { | ||
path: "src", | ||
routeBasePath: "/", | ||
homePageId: 'introduction', | ||
sidebarPath: require.resolve("./sidebars.js"), | ||
}, | ||
theme: { | ||
customCss: require.resolve("./src/css/custom.css"), | ||
}, | ||
}, | ||
], | ||
], | ||
}; |
Oops, something went wrong.