chore: add dependabot #160
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Create Release | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| on: | |
| workflow_dispatch: | |
| push: | |
| branches: | |
| - main | |
| paths-ignore: | |
| - '**/*.md' | |
| permissions: | |
| contents: write | |
| pull-requests: write | |
| actions: read | |
| pages: write | |
| id-token: write | |
| env: | |
| APP_NAME: pyTermTk | |
| jobs: | |
| release-please: | |
| # runs-on: ubuntu-latest | |
| runs-on: self-hosted | |
| outputs: | |
| rp_out: ${{ toJson(steps.release-please.outputs) }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| - name: Trust git directory | |
| run: git config --global --add safe.directory $GITHUB_WORKSPACE | |
| - uses: googleapis/release-please-action@v4 | |
| timeout-minutes: 15 | |
| id: release-please | |
| with: | |
| token: ${{ secrets.GH_PAT_TOKEN }} | |
| config-file: .release-please-config.json | |
| manifest-file: .release-please-manifest.json | |
| - name: Print outputs | |
| shell: bash | |
| env: | |
| OUTPUTS: ${{ toJSON(steps.release-please.outputs) }} | |
| run: | | |
| echo OUTPUTS: "$OUTPUTS" | |
| - name: Update Version | |
| if: ${{ steps.release-please.outputs.prs_created == 'true'}} | |
| shell: bash | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GH_PAT_TOKEN }} | |
| run: | | |
| echo '::group::Setup Git' | |
| git config --global user.name 'Eugenio Parodi - Action' | |
| git config --global user.email 'ceccopierangioliegenio@googlemail.com' | |
| git clone \ | |
| -b ${{ fromJson(steps.release-please.outputs.pr).headBranchName }} \ | |
| https://${GITHUB_TOKEN}@github.com/ceccopierangiolieugenio/pyTermTk.git \ | |
| pyTermTk.new | |
| echo '::endgroup::' | |
| cd pyTermTk.new | |
| echo '::group::Retrieve the Versions' | |
| # Update version in the project | |
| _VERSION_TTK=$(jq -r '.["libs/pyTermTk" ]' .release-please-manifest.json) | |
| _VERSION_DPT=$(jq -r '.["apps/dumbPaintTool"]' .release-please-manifest.json) | |
| _VERSION_T_D=$(jq -r '.["apps/ttkDesigner" ]' .release-please-manifest.json) | |
| _VERSION_KOD=$(jq -r '.["apps/ttkode" ]' .release-please-manifest.json) | |
| _VERSION_TLG=$(jq -r '.["apps/tlogg" ]' .release-please-manifest.json) | |
| _NAME_TTK=$(jq -r '.packages["libs/pyTermTk" ]["package-name"]' .release-please-config.json) | |
| _NAME_DPT=$(jq -r '.packages["apps/dumbPaintTool"]["package-name"]' .release-please-config.json) | |
| _NAME_T_D=$(jq -r '.packages["apps/ttkDesigner" ]["package-name"]' .release-please-config.json) | |
| _NAME_KOD=$(jq -r '.packages["apps/ttkode" ]["package-name"]' .release-please-config.json) | |
| _NAME_TLG=$(jq -r '.packages["apps/tlogg" ]["package-name"]' .release-please-config.json) | |
| echo "Version ${_NAME_TTK}: ${_VERSION_TTK}" | |
| echo "Version ${_NAME_DPT}: ${_VERSION_DPT}" | |
| echo "Version ${_NAME_T_D}: ${_VERSION_T_D}" | |
| echo "Version ${_NAME_KOD}: ${_VERSION_KOD}" | |
| echo "Version ${_NAME_TLG}: ${_VERSION_TLG}" | |
| echo '::endgroup::' | |
| echo '::group::Update the Versions' | |
| sed -i \ | |
| "s|__version__:str.*|__version__:str = '${_VERSION_TTK}'|" \ | |
| libs/pyTermTk/TermTk/__init__.py | |
| if grep -q "${_NAME_DPT}: ${_VERSION_DPT}" <<< ' ${{ steps.release-please.outputs.pr }}' ; then | |
| sed -i \ | |
| "s|__version__:str.*|__version__:str = '${_VERSION_T_D}'|" \ | |
| apps/ttkDesigner/ttkDesigner/__init__.py | |
| sed "s|'pyTermTk *>=[^']*'|'pyTermTk>=${_VERSION_TTK}'|" -i apps/dumbPaintTool/pyproject.toml | |
| fi | |
| if grep -q "${_NAME_T_D}: ${_VERSION_T_D}" <<< ' ${{ steps.release-please.outputs.pr }}' ; then | |
| sed -i \ | |
| "s|__version__:str.*|__version__:str = '${_VERSION_DPT}'|" \ | |
| apps/dumbPaintTool/dumbPaintTool/__init__.py | |
| sed "s|'pyTermTk *>=[^']*'|'pyTermTk>=${_VERSION_TTK}'|" -i apps/ttkDesigner/pyproject.toml | |
| fi | |
| if grep -q "${_NAME_KOD}: ${_VERSION_KOD}" <<< ' ${{ steps.release-please.outputs.pr }}' ; then | |
| sed -i \ | |
| "s|__version__:str.*|__version__:str = '${_VERSION_KOD}'|" \ | |
| apps/ttkode/ttkode/__init__.py | |
| sed "s|'pyTermTk *>=[^']*'|'pyTermTk>=${_VERSION_TTK}'|" -i apps/ttkode/pyproject.toml | |
| fi | |
| if grep -q "${_NAME_TLG}: ${_VERSION_TLG}" <<< ' ${{ steps.release-please.outputs.pr }}' ; then | |
| sed -i \ | |
| "s|__version__:str.*|__version__:str = '${_VERSION_TLG}'|" \ | |
| apps/tlogg/tlogg/__init__.py | |
| sed "s|'pyTermTk *>=[^']*'|'pyTermTk>=${_VERSION_TTK}'|" -i apps/tlogg/pyproject.toml | |
| fi | |
| cp libs/pyTermTk/CHANGELOG.md CHANGELOG.md | |
| echo '::endgroup::' | |
| echo '::group::Push the Versions' | |
| git add \ | |
| apps/*/*/__init__.py \ | |
| libs/pyTermTk/TermTk/__init__.py \ | |
| CHANGELOG.md | |
| find . -name pyproject.toml | xargs git add | |
| if [[ $(git status --porcelain) ]] ; then | |
| git commit -m "chore: updated TermTk and apps to versions to ${_VERSION_TTK}, ${_VERSION_DPT}, ${_VERSION_T_D} ${_VERSION_KOD}" | |
| git push | |
| fi | |
| echo '::endgroup::' | |
| pyTermTk-deploy-artifacts: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['libs/pyTermTk--release_created'] }} | |
| # runs-on: ubuntu-latest | |
| runs-on: self-hosted | |
| name: Deploy pyTermTk to github release | |
| needs: release-please | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.sha }} | |
| - name: Create Artifacts | |
| id: create-artifacts | |
| shell: bash | |
| run: | | |
| # _TMP=$(mktmp) | |
| _TMP=tmp | |
| echo "artifacts_dir=${_TMP}" >> $GITHUB_OUTPUT | |
| mkdir -p ${_TMP} | |
| find libs/pyTermTk/TermTk -name "*.py" | | |
| sed 's,libs/pyTermTk/,,' | | |
| sort | xargs tar cvzf ${_TMP}/TermTk.tgz -C libs/pyTermTk | |
| find tutorial -name '*.py' -o -name '*.json' | | |
| sort | xargs tar cvzf ${_TMP}/tutorial.tgz | |
| find \ | |
| demo/paint.py \ | |
| demo/ttkode.py \ | |
| demo/demo.py \ | |
| demo/showcase/*.* | | |
| sort | xargs tar cvzf ${_TMP}/demo.tgz | |
| find \ | |
| tests/ansi.images.json \ | |
| tests/t.ui/*.* | | |
| sort | xargs tar cvzf ${_TMP}/tests.tgz | |
| - name: Upload artifatcs to Release | |
| shell: bash | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GH_PAT_TOKEN }} | |
| TAG_NAME: ${{ fromJson(needs.release-please.outputs.rp_out)['libs/pyTermTk--tag_name'] }} | |
| run: | | |
| _TMP=${{ steps.create-artifacts.outputs.artifacts_dir }} | |
| gh release upload ${TAG_NAME} ${_TMP}/TermTk.tgz | |
| gh release upload ${TAG_NAME} ${_TMP}/tutorial.tgz | |
| gh release upload ${TAG_NAME} ${_TMP}/tests.tgz | |
| gh release upload ${TAG_NAME} ${_TMP}/demo.tgz | |
| rm -rf ${_TMP} | |
| pyTermTk-deploy-sandbox: | |
| name: Deploy pyTermTk Sandbox | |
| uses: ./.github/workflows/release-sandbox.yml | |
| needs: release-please | |
| secrets: inherit | |
| pyTermTk-deploy-sandbox-bin: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['libs/pyTermTk--release_created'] }} | |
| name: Deploy pyTermTk Sandbox Binaries | |
| uses: ./.github/workflows/release-sandbox-bin.yml | |
| needs: | |
| - release-please | |
| - pyTermTk-deploy-artifacts | |
| secrets: inherit | |
| pyTermTk-deploy-docs: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['libs/pyTermTk--release_created'] }} | |
| name: Deploy pyTermTk Docs | |
| uses: ./.github/workflows/release-doc.yml | |
| needs: | |
| - release-please | |
| - pyTermTk-deploy-artifacts | |
| secrets: inherit | |
| publish-pyTermTk: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['libs/pyTermTk--release_created'] }} | |
| name: Publish pyTermTk | |
| uses: ./.github/workflows/python-publish.yml | |
| with: | |
| pkg_name: pyTermTk | |
| pkg_folder: libs/pyTermTk | |
| needs: | |
| - release-please | |
| secrets: inherit | |
| publish-ttkDesigner: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['apps/ttkDesigner--release_created'] }} | |
| name: Publish ttkDesigner | |
| uses: ./.github/workflows/python-publish.yml | |
| with: | |
| pkg_name: ttkDesigner | |
| pkg_folder: apps/ttkDesigner | |
| needs: | |
| - release-please | |
| secrets: inherit | |
| publish-dumbPaintTool: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['apps/dumbPaintTool--release_created'] }} | |
| name: Publish dumbPaintTool | |
| uses: ./.github/workflows/python-publish.yml | |
| with: | |
| pkg_name: dumbPaintTool | |
| pkg_folder: apps/dumbPaintTool | |
| needs: | |
| - release-please | |
| secrets: inherit | |
| publish-dumbPaintTool-itch: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['apps/dumbPaintTool--release_created'] }} | |
| name: Publish dumbPaintTool on itch.io | |
| uses: ./.github/workflows/itch-publish.yml | |
| with: | |
| pkg_name: dumb-paint-tool | |
| needs: | |
| - release-please | |
| secrets: inherit | |
| publish-ttkode: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['apps/ttkode--release_created'] }} | |
| name: Publish ttkode | |
| uses: ./.github/workflows/python-publish.yml | |
| with: | |
| pkg_name: ttkode | |
| pkg_folder: apps/ttkode | |
| needs: | |
| - release-please | |
| secrets: inherit | |
| publish-tlogg: | |
| if: ${{ fromJson(needs.release-please.outputs.rp_out)['apps/tlogg--release_created'] }} | |
| name: Publish tlogg | |
| uses: ./.github/workflows/python-publish.yml | |
| with: | |
| pkg_name: tlogg | |
| pkg_folder: apps/tlogg | |
| needs: | |
| - release-please | |
| secrets: inherit |