Reto Gmür
Reto Gmür

Reputation: 2647

Publish releases to gh-pages with travis without deleting previous releases

I want to publish releases to gh-pages. The deploy provider can be configured to keep history using keep-history: true. However I would like previous versions not to be just available in the git history but not to be deleted from the repository.

I've configured yarn and webpack to create a separate directory for each tag and to put the distribution in both a "latest"-directory as well as this tag specific directory. I would like to see a tag directory for all previous versions and not just for the latest version.

Here are the results of my current configuration: https://github.com/retog/rdfgraphnode-rdfext/tree/gh-pages

Upvotes: 1

Views: 459

Answers (1)

Reto Gmür
Reto Gmür

Reputation: 2647

I found the following solution.

In travis.yml replace:

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

With:

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

And add the script file .travis_publish with the following content:

#!/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 "[email protected]"
git commit -m "Updated distribution."
git push -fq origin $PUBLICATION_BRANCH 2>&1 > /dev/null
popd

Upvotes: 2

Related Questions