Skip to content
Snippets Groups Projects
Select Git revision
  • 83bddd98d83da84b3b4d46f0dcba33c70779bfc1
  • dev default protected
  • release/1.9.1 protected
  • pini-1.8-docker
  • pini-sync-onlypeers
  • duniter-v2s-issue-123-industrialize-releases
  • feature/build-aarch64-nodejs16
  • release/1.8 protected
  • pini-docker
  • ci_tags
  • fix/1448/1.8/txs_not_stored
  • feature/node-20
  • fix/1441/node_summary_with_storage
  • fix/1442/improve_bma_tx_history
  • feature/wotwizard-1.8
  • release/1.9 protected
  • 1.7 protected
  • feature/docker-set-latest protected
  • feature/fast-docker-build-1.8.4
  • fast-docker-build protected
  • feature/dump-distance
  • v1.8.7 protected
  • v1.8.7-rc4 protected
  • v1.8.7-rc3 protected
  • v1.8.7-rc2 protected
  • v1.8.7-rc1 protected
  • v1.8.6 protected
  • v1.7.23 protected
  • v1.8.5 protected
  • v1.8.4 protected
  • v1.8.3 protected
  • v1.8.2 protected
  • v1.8.1 protected
  • v1.8.0 protected
  • v1.8.0-rc1 protected
  • v1.8.0-beta5 protected
  • v1.8.0-beta4 protected
  • v1.8.0-beta3 protected
  • v1.8.0-beta2 protected
  • v1.8.0-beta protected
  • v1.7.21 protected
41 results

release.sh

Blame
  • release.sh 2.42 KiB
    #!/bin/bash
    
    ### Control that the script is run on `dev` branch
    branch=`git rev-parse --abbrev-ref HEAD`
    if [[ ! "$branch" = "dev" ]];
    then
      echo ">> This script must be run under \`dev\` branch"
      exit
    fi
    
    ### Releasing
    current=`grep -P "version\": \"\d+.\d+.\d+(\w*)" package.json | grep -oP "\d+.\d+.\d+(\w*)"`
    echo "Current version: $current"
    
    if [[ $2 =~ ^[0-9]+.[0-9]+.[0-9]+((a|b)[0-9]+)?$ ]]; then
      echo "build $2"
      case "$1" in
        rel|pre)
          # Change the version in package.json and test file
          sed -i "s/version\": .*/version\": \"$2\",/g" package.json
          sed -i "s/Version: .*/Version: $2/g" ci/travis/debian/DEBIAN/control
          sed -i "s/version').equal('.*/version').equal('$2');/g" test/integration/branches.js
          sed -i "s/ release: .*/ release: v$2/g" appveyor.yml
    
          # GUI containers version
          sed -i "s/name\": .*/name\": \"v$2\",/g" gui/package.json
          sed -i "s/title\": .*/title\": \"v$2\",/g" gui/package.json
          sed -i "s/<title>Duniter.*<\/title>/<title>Duniter $2<\/title>/g" gui/index.html
    
          # Bump the before_deploy.sh
          sed -i "s/DUNITER_VER=.*/DUNITER_VER=$2/g" ci/travis/before_deploy.sh
    
          # Bump the install.sh
          sed -i "s/echo \"v.*\"/echo \"v$2\"/g" install.sh
    
          # (pre)-release management
          if [[ "$1" =~ ^rel$ ]]; then
            # This is RELEASE: change the version in public installer + add the RELEASE flag
            sed -i "s/echo \"v.*\"/echo \"v$2\"/g" install.sh
            sed -i "s/.*prerelease: true/#    prerelease: true/g" .travis.yml
            sed -i "s/.*prerelease: true/#  prerelease: true/g" appveyor.yml
          fi
          if [[ "$1" =~ ^pre$ ]]; then
            # This is PRE-RELEASE: just change the RELEASE flag to PRERELEASE
            sed -i "s/.*prerelease: true/    prerelease: true/g" .travis.yml
            sed -i "s/.*prerelease: true/  prerelease: true/g" appveyor.yml
          fi
          ;;
        *)
          echo "No task given"
          ;;
      esac
    
      # Commit
      git reset HEAD
      case "$1" in
        rel)
          git add install.sh package.json .travis.yml appveyor.yml test/integration/branches.js gui/package.json gui/index.html ci/travis/before_deploy.sh ci/travis/debian/DEBIAN/control install.sh
          ;;
        pre)
          git add install.sh package.json .travis.yml appveyor.yml test/integration/branches.js gui/package.json gui/index.html ci/travis/before_deploy.sh ci/travis/debian/DEBIAN/control
          ;;
      esac
      git commit -m "v$2"
      git tag "v$2"
    else
      echo "Wrong version format"
    fi