diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e84156a5..7d614830 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,15 +1,15 @@ name: Release Drafter and Publisher on: - push: - tags: - - v* + pull_request: + types: [closed] permissions: contents: read jobs: new_release: + if: github.event.pull_request.merged == true permissions: # write permission is required to create a github release contents: write @@ -21,17 +21,45 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v2 + with: + fetch-depth: 0 + + - name: Get branch name + id: getbranch + run: echo ::set-output name=BRANCH::${GITHUB_HEAD_REF} - # ${{ github.ref }} was not giving v* as tag name, but refs/tags/v* instead, so I had to abbreviate it + # ${{ github.ref }} was not giving v* as tag name, but refs/tags/v* instead, so It had to be abbreviated - name: Get latest abbreviated tag id: gettag - run: echo ::set-output name=TAG::$(git describe --tags --abbrev=7) + run: echo ::set-output name=TAG::$(git describe --tags --abbrev=0) + + - name: Calculate next version + id: nextversion + run: | + BRANCH_NAME="${{ steps.getbranch.outputs.BRANCH }}" + CURRENT_VERSION="${{ steps.gettag.outputs.TAG }}" + CURRENT_VERSION="${CURRENT_VERSION#v}" # Remove the 'v' from the start of the version + IFS='.' read -ra VERSION_PARTS <<< "$CURRENT_VERSION" + if [[ $BRANCH_NAME =~ ^feature/ ]]; then + VERSION_PARTS[1]=$((VERSION_PARTS[1] + 1)) + elif [[ $BRANCH_NAME =~ ^patch/ ]]; then + VERSION_PARTS[2]=$((VERSION_PARTS[2] + 1)) + elif [[ $BRANCH_NAME =~ ^release/ ]]; then + VERSION_PARTS[0]=$((VERSION_PARTS[0] + 1)) + fi + NEXT_VERSION="v${VERSION_PARTS[0]}.${VERSION_PARTS[1]}.${VERSION_PARTS[2]}" + echo ::set-output name=NEXT_VERSION::"$NEXT_VERSION" + + - name: Create and publish new tag + run: | + git tag ${{ steps.nextversion.outputs.NEXT_VERSION }} + git push origin ${{ steps.nextversion.outputs.NEXT_VERSION }} - uses: release-drafter/release-drafter@v5 with: commitish: master - name: "stellar-etl ${{ steps.gettag.outputs.TAG }}" - tag: ${{ github.ref }} + name: "stellar-etl ${{ steps.nextversion.outputs.NEXT_VERSION }}" + tag: ${{ steps.nextversion.outputs.NEXT_VERSION }} publish: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/README.md b/README.md index 544608ff..97cf6318 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,16 @@ The Stellar-ETL is a data pipeline that allows users to extract data from the history of the Stellar network. +## ** Before creating a branch ** + +Pay attention, it is very important to know if your modification to this repository is a release (breaking changes), a feature (functionalities) or a patch(to fix bugs). With that information, create your branch name like this: + +* ```release/``` +* ```feature/``` +* ```patch/``` + +If branch is already made, just rename it *before passing the pull request*. + ## **Table of Contents** - [Exporting the Ledger Chain](#exporting-the-ledger-chain)