pipelines:
  branches:
    develop:
      - step:
          name: Swagger codegen
          script:
            - CURRENT_VERSION=$(docker run -i --rm stedolan/jq < package.json '.version')
            - rm -r .swagger-codegen docs src test .babelrc .gitignore .swagger-codegen-ignore .travis.yml git_push.sh mocha.opts package.json README.md
            - docker run --rm --volume ${BITBUCKET_CLONE_DIR}:/local swaggerapi/swagger-codegen-cli generate --input-spec $SWAGGER_SPEC_URL --lang javascript --output /local --template-dir /local/modules/swagger-codegen/src/main/resources/Javascript/es6 --additional-properties usePromises=true,useES6=true,emitModelMethods=true,projectName='docket-sdk',projectDescription='JavaScript SDK for interfacing with the Oracle API'
            - docker run -i -e CURRENT_VERSION=$CURRENT_VERSION --rm stedolan/jq < package.json ".version = $CURRENT_VERSION" > package.tmp.json && mv package.tmp.json package.json
          services:
            - docker
          artifacts:
            - .swagger-codegen/**
            - docs/**
            - src/**
            - test/**
            - .babelrc
            - .gitignore
            - .swagger-codegen-ignore
            - .travis.yml
            - git_push.sh
            - mocha.opts
            - package.json
            - README.md
      - step:
          name: Transpile
          image: node:latest
          script:
            - rm -rf dist package-lock.json
            - npm install
            - $(npm bin)/babel src -d dist
          artifacts:
            - dist/**
            - package-lock.json
      - step:
          name: Test, version & publish
          image: node:latest
          script:
            - npm install
            # - npm test
            - docker run -i --rm stedolan/jq < package.json '.main = "dist/index.js" | .name = "@verys/oracle-sdk"' > package.tmp.json && mv package.tmp.json package.json
            - git config user.name "$(git log -1 --pretty=format:'%an')"
            - git config user.email "$(git log -1 --pretty=format:'%ae')"
            - git add --all
            - git commit -m "[skip ci] Bitbucket Pipelines build $BITBUCKET_BUILD_NUMBER"
            - npm version $NPM_VERSION_NEWVERSION -m "[skip ci] Version %s" # See https://docs.npmjs.com/cli/version#description
            - git push
            - git push --tags
            - printf "//`node -p \"require('url').parse(process.env.NPM_REGISTRY_URL || 'https://registry.npmjs.org').host\"`/:_authToken=${NPM_TOKEN}\nregistry=${NPM_REGISTRY_URL:-https://registry.npmjs.org}\n" >> ~/.npmrc
            - npm publish --access public
          services:
            - docker
