diff --git a/.bumpversion.cfg b/.bumpversion.cfg new file mode 100644 index 0000000..a3a6593 --- /dev/null +++ b/.bumpversion.cfg @@ -0,0 +1,2 @@ +[bumpversion] +current_version = 1.1.1 diff --git a/.github/workflows/bump.yml b/.github/workflows/bump.yml new file mode 100644 index 0000000..c3cfaf0 --- /dev/null +++ b/.github/workflows/bump.yml @@ -0,0 +1,80 @@ +name: BUMP Version +on: + push: + branches: [ master ] + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +env: + VERSION_FILE: setup.py + HOME: /home/ci_repos + SCRIPTS_PATH: /home/ci_repos/ci_scripts + USER: ci_repos + +permissions: + actions: write + checks: write + contents: write + deployments: write + issues: write + pull-requests: write + statuses: read + +jobs: + bump-version: + runs-on: [self-hosted, Keroberos] + if: ${{ !startsWith(github.event.head_commit.message, 'Bump to v') }} + steps: + - uses: actions/checkout@v4 + with: + token: ${{ secrets.PUB_MASTER_PUSH_TOKEN }} + - name: Update python packages + run: | + . $SCRIPTS_PATH/load_pyenv.sh + pyenv activate bump + pip install --upgrade bump2version + pip install --upgrade giscemultitools + + - name: Get PR info + env: + GITHUB_TOKEN: ${{ secrets.RO_GH_ACTIONS_TOKEN }} + run: | + . $SCRIPTS_PATH/load_pyenv.sh + pyenv activate bump + echo 'PR_INFO<> $GITHUB_ENV + gisce_github get-commits-sha-from-merge-commit --owner ${{ github.repository_owner }} --repository ${{ github.event.repository.name }} --sha ${{ github.sha }} >> $GITHUB_ENV + echo 'EOF' >> $GITHUB_ENV + + - name: Bump Version + run: | + . $SCRIPTS_PATH/load_pyenv.sh + pyenv activate bump + pr_labels=$( echo '${{ env.PR_INFO }}' | jq -r '.pullRequest.labels' ) + is_minor=false + is_major=false + is_patch=false + for label in echo $( echo $pr_labels | jq -r '.[].name' ); do + if [[ $label == 'minor' ]]; then + is_minor=true + elif [[ $label == 'major' ]]; then + is_major=true + elif [[ $label == 'patch' ]]; then + is_patch=true + fi + done + VERSION_TYPE=false + if [[ $is_major == true ]]; then + VERSION_TYPE="major" + elif [[ $is_minor == true ]]; then + VERSION_TYPE="minor" + elif [[ $is_patch == true ]]; then + VERSION_TYPE="patch" + fi + if [[ $VERSION_TYPE != false ]]; then + git config user.name Release Bot + git config user.email github-actions@github.com + bump2version $VERSION_TYPE --tag --commit -m "Bump to v{new_version}" $VERSION_FILE + git push origin master --tags + fi \ No newline at end of file diff --git a/.github/workflows/upload.yml b/.github/workflows/upload.yml new file mode 100644 index 0000000..8cd46e5 --- /dev/null +++ b/.github/workflows/upload.yml @@ -0,0 +1,46 @@ +name: Upload package to PYPI + +on: + push: + tags: + - 'v[0-9]+\.[0-9]+\.[0-9]+-rc[0-9]+' + - 'v[0-9]+\.[0-9]+\.[0-9]+' + +concurrency: + group: ${{ github.workflow }} + cancel-in-progress: false + +permissions: + contents: write + discussions: write + +jobs: + upload-to-pypi: + runs-on: [self-hosted, Keroberos] + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v4 + with: + python-version: '3.11' + + - name: Get tag + id: tag + uses: dawidd6/action-get-tag@v1 + with: + strip_v: false + + - name: Creating a realease/pre-release + id: create_release + uses: softprops/action-gh-release@v1 + with: + tag_name: ${{steps.tag.outputs.tag}} + draft: false + prerelease: ${{ contains(github.ref, '-rc') }} + generate_release_notes: true + + - name: Publish a Python distribution to PyPI + if: ${{ contains(github.ref, '-rc') }} == false + uses: conchylicultor/pypi-build-publish@v1 + with: + pypi-token: ${{ secrets.PYPI_MASTER_TOKEN }} \ No newline at end of file