You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
141 lines
4.3 KiB
141 lines
4.3 KiB
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 |
|
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: | |
|
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 |
|
cd pyTermTk.new |
|
_VERSION=$(jq .TermTk .release-please-manifest.json) |
|
echo "Version: ${_VERSION}" |
|
sed -i \ |
|
"s|version:str.*|version:str = ${_VERSION}|" \ |
|
TermTk/TTkCore/cfg.py \ |
|
TermTk/__init__.py |
|
sed -i \ |
|
"s|'pyTermTk>=.*',|'pyTermTk>=${_VERSION/-/}',|" \ |
|
setup.* |
|
cp TermTk/CHANGELOG.md CHANGELOG.md |
|
git add \ |
|
TermTk/TTkCore/cfg.py \ |
|
TermTk/__init__.py \ |
|
setup.* \ |
|
CHANGELOG.md |
|
git commit -m "chore: updated version to ${_VERSION}" |
|
git push |
|
|
|
pyTermTk-deploy-artifacts: |
|
if: ${{ fromJson(needs.release-please.outputs.rp_out)['TermTk--release_created'] }} |
|
runs-on: ubuntu-latest |
|
name: Deploy pyTermTk to github release |
|
needs: release-please |
|
steps: |
|
- uses: actions/checkout@v4 |
|
with: |
|
ref: ${{ github.sha }} |
|
- name: Create Artifacts |
|
shell: bash |
|
run: | |
|
mkdir -p tmp |
|
find TermTk/ -name "*.py" | |
|
sort | xargs tar cvzf tmp/TermTk.tgz |
|
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)['TermTk--tag_name'] }} |
|
run: | |
|
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 |
|
|
|
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)['TermTk--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)['TermTk--release_created'] }} |
|
name: Deploy pyTermTk Docs |
|
uses: ./.github/workflows/release_doc.yml |
|
needs: |
|
- release-please |
|
- pyTermTk-deploy-artifacts |
|
secrets: inherit
|
|
|