diff --git a/.github/workflows/build_and_release.yml b/.github/workflows/build_and_release.yml index 54bf432..1a64e67 100644 --- a/.github/workflows/build_and_release.yml +++ b/.github/workflows/build_and_release.yml @@ -6,8 +6,33 @@ on: - master jobs: + check_for_changed_version: + runs-on: 'ubuntu-latest' + # Declare outputs for next jobs + outputs: + version_changed: ${{ steps.check_file_changed.outputs.version_changed }} + steps: + - uses: actions/checkout@v2 + with: + # Checkout as many commits as needed for the diff + fetch-depth: 2 + - id: check_file_changed + run: | + # Diff HEAD with the previous commit + if git diff HEAD^ HEAD pyproject.toml | grep -q "+version ="; + then + GOTIME="True" + else + GOTIME="False" + fi + echo "::notice title=GOTIME::$GOTIME" + # Set the output named "version_changed" + echo "version_changed=$GOTIME" >> $GITHUB_OUTPUT + build: runs-on: ubuntu-latest + needs: [ check_for_changed_version ] + if: needs.check_for_changed_version.outputs.version_changed == 'True' permissions: contents: write steps: @@ -21,19 +46,19 @@ jobs: pip install --upgrade pip pip install shiv pip install poetry - - name: Add CURRENT_TIME env property - run: echo "CURRENT_TIME_VERSION=v$(date '+%s')" >> $GITHUB_ENV + - name: Add VERSION env property + run: echo "VERSION=v$(poetry version | python -c 'import sys;print(sys.stdin.read().split()[1])')" >> $GITHUB_ENV - name: Build the sucker run: | - sed -i -e "s/?????/${{ env.CURRENT_TIME_VERSION }}/g" src/__init__.py + sed -i -e "s/?????/${{ env.VERSION }}/g" src/__init__.py make build - name: Create release! run: | JSON_DATA=$( printf '%s' \ '{'\ - '"tag_name":"${{ env.CURRENT_TIME_VERSION }}",'\ - '"name":"${{ env.CURRENT_TIME_VERSION }}",'\ + '"tag_name":"${{ env.VERSION }}",'\ + '"name":"${{ env.VERSION }}",'\ '"body":"RELEASE THE KRAKEN"'\ '}' \ )