使用 travis 将版本发布到 gh-pages 而不删除以前的版本

Posted

技术标签:

【中文标题】使用 travis 将版本发布到 gh-pages 而不删除以前的版本【英文标题】:Publish releases to gh-pages with travis without deleting previous releases 【发布时间】:2018-09-01 01:39:36 【问题描述】:

我想将版本发布到 gh-pages。可以将部署提供程序配置为使用 keep-history: true 保留历史记录。但是,我希望以前的版本不仅可以在 git 历史记录中使用,也不要从存储库中删除。

我已经配置了 yarn 和 webpack 来为每个标签创建一个单独的目录,并将分发放在一个“最新”目录以及这个标签特定的目录中。我想查看所有以前版本的标签目录,而不仅仅是最新版本。

这是我当前配置的结果:https://github.com/retog/rdfgraphnode-rdfext/tree/gh-pages

【问题讨论】:

【参考方案1】:

我找到了以下解决方案。

travis.yml 中替换:

- provider: pages
  skip-cleanup: true
  github-token: $GITHUB_TOKEN
  keep-history: true
  local-dir: distribution
  on:
    tags: true

与:

- provider: script
  script: bash .travis_publish
  on:
    tags: true

并添加脚本文件.travis_publish,内容如下:

#!/bin/bash
PUBLICATION_BRANCH=gh-pages
# Checkout the branch
REPO_PATH=$PWD
pushd $HOME
git clone --branch=$PUBLICATION_BRANCH    https://$GITHUB_TOKEN@github.com/$TRAVIS_REPO_SLUG publish 2>&1 > /dev/null
cd publish
# Update pages
cp -r $REPO_PATH/distribution .
# Commit and push latest version
git add .
git config user.name  "Travis"
git config user.email "travis@travis-ci.org"
git commit -m "Updated distribution."
git push -fq origin $PUBLICATION_BRANCH 2>&1 > /dev/null
popd

【讨论】:

由于我在另一个 repo 上不明白的原因,我不得不在进行克隆时在 repo URL 中添加后缀“.git”:git clone --branch=$PUBLICATION_BRANCH https://$GITHUB_TOKEN@github.com/$TRAVIS_REPO_SLUG.git publish 不再工作了:( cp: cannot stat '/home/travis/build/username/[secure]/distribution': No such file or directory 别在意上面的评论,distribution 是你可能想要从你的 git repo 发布的路径。另一个脚本github.com/voorhoede/front-end-tooling-recipes/blob/master/…

以上是关于使用 travis 将版本发布到 gh-pages 而不删除以前的版本的主要内容,如果未能解决你的问题,请参考以下文章

markdown 使用Travis自动将构建的产品部署到gh-pages

如何为组织帐户生成 GitHub OAuth 令牌?

为Github项目添加Travis持续集成服务

Travis pypi 包版本

Github:将 gh-pages 镜像到 master

github怎样创建gh-page