Travis CI 中使用 Google Bazel 自动部署 Facebook Docusaurus

Google Bazel Google Bazel Google 开源的构建工具。 Facebook Docusaurus Facebook Docusaurus Facebook 开源的项目文档快速构建工具。 在Travis CI中安装 Bazel 并配置 Docusaurus 自动部署环境变量。 dist: trusty sudo: required osx_image: xcode8 language: java os: - linux - osx env: - V=0.21.0 - V=0.20.0 before_install: - OS=linux - ARCH=x86_64 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then OS=darwin; fi - GH_BASE="https://github.com/bazelbuild/bazel/releases/download/$V" - GH_ARTIFACT="bazel-$V-installer-$OS-$ARCH.sh" - CI_BASE="http://ci.bazel.io/job/Bazel/JAVA_VERSION=1.8,PLATFORM_NAME=$OS-$ARCH/lastSuccessfulBuild/artifact/output/ci" - CI_ARTIFACT="bazel--installer.sh" - URL="$GH_BASE/$GH_ARTIFACT" - if [[ "$V" == "HEAD" ]]; then CI_ARTIFACT="`wget -qO- $CI_BASE | grep -o 'bazel-[-_a-zA-Z0-9\.]*-installer.sh' | uniq`"; fi - if [[ "$V" == "HEAD" ]]; then URL="$CI_BASE/$CI_ARTIFACT"; fi - echo $URL - wget -O install.sh $URL - chmod +x install.sh - ./install.sh --user - rm -f install.sh - export GIT_USER="${GH_NAME}" - git config --global user.name "${GH_NAME}" - git config --global user.email "${GH_EMAIL}" - echo "machine github.com login ${GH_NAME} password ${GH_TOKEN}" > ~/.netrc 使用 Bazel 来构建 nodejs 应用(Docusaurus) 在 WORKSPACE 中添加 rules_nodejs load("@bazel_tools//tools/build_defs/repo:git.bzl", "git_repository") git_repository( name = "build_bazel_rules_nodejs", remote = "https://github.com/bazelbuild/rules_nodejs.git", tag = "0.16.5", ) load("@build_bazel_rules_nodejs//:package.bzl", "rules_nodejs_dependencies") rules_nodejs_dependencies() load("@build_bazel_rules_nodejs//:defs.bzl", "node_repositories") node_repositories(["//website:package.json"]) 使用 Makefile 简化 Bazel 构建命令 BAZEL := "bazel" all: build website-deploy website-install: $(BAZEL) run @nodejs//:npm install website-start: website-install $(BAZEL) run @nodejs//:npm start website-build: website-install $(BAZEL) run @nodejs//:npm run build website-deploy: website-install $(BAZEL) run @nodejs//:npm run publish-gh-pages build: website-build $(BAZEL) build clean: $(BAZEL) clean --expunge rm -rf website/node_modules website/i18n website/build website/package-lock.json 其他 需要操作 Travis 为项目添加三个环境变量, 分别为 GH_NAME, GH_EMAIL, GH_TOKEN。当然也可以该成为其他名字,只要和 .travis.yml 中对应就好了。在创建 access token 的时候记得给添加 deploy 权限,否则 travis 任务会出错。 示例 这是现在正在开发的 Pumpkin IM, 可以在本项目中查阅所有关于本文中提到的使用方式。 好文要顶https://www.cnblogs.com/bluearty/p/10280351.html
50000+
5万行代码练就真实本领
17年
创办于2008年老牌培训机构
1000+
合作企业
98%
就业率

联系我们

电话咨询

0532-85025005

扫码添加微信