Skip to content

Renamed parameter debug to investigate. #164

Renamed parameter debug to investigate.

Renamed parameter debug to investigate. #164

# The MIT License (MIT)
#
# Copyright © 2024 The pyTooling Authors
#
# Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated
# documentation files (the “Software”), to deal in the Software without restriction, including without limitation the
# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit
# persons to whom the Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in all copies or substantial portions of the
# Software.
#
# THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
# COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
name: Verification of Preserving Artifact Upload
on:
push:
workflow_dispatch:
jobs:
Build:
name: ${{ matrix.os.icon }} Build 1 on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-release' with github action
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-release
path: |
document1.txt
*.log
bin/*.py
lib/
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-release' with investigate
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-release
investigate: true
path: |
document1.txt
*.log
bin/*.py
lib/
- name: 📤 Upload artifact '${{ matrix.os.name }}-legacy-release' with legacy
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-legacy-release
mode: legacy
path: |
document1.txt
*.log
bin/*.py
lib/
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-lib'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-lib
working-directory: lib
path: |
**/*.py
Build-single-file:
name: ${{ matrix.os.icon }} Build single-file on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-single-file'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-single-file
path: |
document1.txt
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-single-file'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-single-file
path: |
document1.txt
Build-single-file-in-directory:
name: ${{ matrix.os.icon }} Build single-file-in-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-single-file-in-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-single-file-in-directory
path: |
bin/program.py
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-single-file-in-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-single-file-in-directory
path: |
bin/program.py
Build-double-file-in-directory:
name: ${{ matrix.os.icon }} Build double-file-in-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-double-file-in-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-double-file-in-directory
path: |
bin/program.py
bin/tool.py
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-double-file-in-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-double-file-in-directory
path: |
bin/program.py
bin/tool.py
Build-triple-file-in-directory:
name: ${{ matrix.os.icon }} Build triple-file-in-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-triple-file-in-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-triple-file-in-directory
path: |
lib/common.py
lib/gui/main.py
lib/gui/dialog.py
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-triple-file-in-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-triple-file-in-directory
path: |
lib/common.py
lib/gui/main.py
lib/gui/dialog.py
Build-double-file-in-deep-directory:
name: ${{ matrix.os.icon }} Build double-file-in-deep-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-double-file-in-deep-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-double-file-in-deep-directory
path: |
lib/gui/main.py
lib/gui/dialog.py
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-double-file-in-deep-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-double-file-in-deep-directory
path: |
lib/gui/main.py
lib/gui/dialog.py
Build-single-directory:
name: ${{ matrix.os.icon }} Build single-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-single-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-single-directory
path: |
bin
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-single-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-single-directory
path: |
bin
Build-double-directory:
name: ${{ matrix.os.icon }} Build double-directory on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-double-directory'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-double-directory
path: |
bin
lib
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-double-directory'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-double-directory
path: |
bin
lib
Build-unpredictable-wildcard:
name: ${{ matrix.os.icon }} Build unpredictable-wildcard on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-unpredictable-wildcard'
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-unpredictable-wildcard
path: |
lib/gui/main.py
lib/gui/dialog.py
*.foo
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-unpredictable-wildcard'
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-pyTooling-unpredictable-wildcard
path: |
lib/gui/main.py
lib/gui/dialog.py
*.foo
Build-no-files:
name: ${{ matrix.os.icon }} Build no-files on ${{ matrix.os.name }} - Upload artifact
runs-on: ${{ matrix.os.image }}
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- uses: ./.github/actions/create-files
- name: 📤 Upload artifact '${{ matrix.os.name }}-github-nofile' with warning
uses: actions/upload-artifact@v4
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-nofile
if-no-files-found: warn
path: |
*.dll
- name: 📤 Upload artifact '${{ matrix.os.name }}-pyTooling-nofile' with warning
uses: pyTooling/upload-artifact@dev
continue-on-error: true
with:
name: ${{ matrix.os.name }}-github-nofile
if-no-files-found: warn
path: |
*.dll
Verify-Github:
name: ${{ matrix.os.icon }} Verify (GitHub) artifact content on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-github-release
- name: 🔎 Inspect downloaded artifact content
uses: ./.github/actions/check-artifact-content
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
with:
expected-files: |
document1.txt
analysis.log
build.log
bin/program.py
bin/tool.py
lib/common.py
lib/shared.py
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
.config
bin/.settings
lib/.library
Verify-pyTooling:
name: ${{ matrix.os.icon }} Verify (pyTooling) artifact content on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
- {'icon': '🍏', 'name': 'macOS', 'image': 'macos-14' }
- {'icon': '🪟', 'name': 'Windows', 'image': 'windows-2022'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-pyTooling-release
- name: 🔎 Inspect downloaded artifact content
uses: ./.github/actions/check-artifact-content
with:
must-exist: true
- name: 📦 Extract tarball
run: |
set +e
ANSI_LIGHT_RED=$'\x1b[91m'
ANSI_LIGHT_GREEN=$'\x1b[92m'
ANSI_NOCOLOR=$'\x1b[0m'
printf "%s" "Extracting tarball ... "
tar -xf __pyTooling_upload_artifact__.tar
if [[ $? -ne 0 ]]; then
printf "%s\n" "${ANSI_LIGHT_RED}[FAILED]${ANSI_NOCOLOR}"
else
printf "%s\n" "${ANSI_LIGHT_GREEN}[OK]${ANSI_NOCOLOR}"
fi
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
with:
expected-files: |
document1.txt
analysis.log
build.log
bin/program.py
bin/tool.py
lib/common.py
lib/shared.py
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
.config
bin/.settings
lib/.library
- name: 📋 Verify file permissions
uses: ./.github/actions/file-is-executable
if: matrix.os.name != 'Windows'
with:
files: |
bin/program.py
# bin/tool.py
lib/common.py
lib/shared.py
Inspect-single-file:
name: ${{ matrix.os.icon }} Single file ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-single-file
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-single-file
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content
uses: ./.github/actions/check-directory-content
with:
expected-files: |
document1.txt
unexpected-files: |
.config
analysis.log
build.log
bin/program.py
bin/tool.py
bin/.settings
lib/common.py
lib/shared.py
lib/.library
lib/gui/main.py
lib/gui/dialog.py
Inspect-single-file-in-directory:
name: ${{ matrix.os.icon }} Inspect single file in directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-single-file-in-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-single-file-in-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
program.py
unexpected-files: |
tool.py
.settings
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
bin/program.py
unexpected-files: |
bin/tool.py
bin/.settings
Inspect-double-file-in-directory:
name: ${{ matrix.os.icon }} Inspect double file in directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-double-file-in-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-double-file-in-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
program.py
tool.py
unexpected-files: |
.settings
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
bin/program.py
bin/tool.py
unexpected-files: |
bin/.settings
Inspect-triple-file-in-directory:
name: ${{ matrix.os.icon }} Inspect triple file in directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-triple-file-in-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-triple-file-in-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
common.py
gui/main.py
gui/dialog.py
unexpected-files: |
shared.py
.library
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
lib/common.py
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
lib/shared.py
lib/.library
Inspect-double-file-in-deep-directory:
name: ${{ matrix.os.icon }} Inspect double file in deep directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-double-file-in-deep-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-double-file-in-deep-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
main.py
dialog.py
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
lib/gui/main.py
lib/gui/dialog.py
Inspect-single-directory:
name: ${{ matrix.os.icon }} Inspect single directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-single-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-single-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
program.py
tool.py
unexpected-files: |
.settings
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
bin/program.py
bin/tool.py
unexpected-files: |
bin/.settings
Inspect-double-directory:
name: ${{ matrix.os.icon }} Inspect double directory ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-double-directory
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-double-directory
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
bin/program.py
bin/tool.py
lib/common.py
lib/shared.py
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
bin/.settings
lib/.library
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
bin/program.py
bin/tool.py
lib/common.py
lib/shared.py
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
bin/.settings
lib/.library
Inspect-unpredictable-wildcard:
name: ${{ matrix.os.icon }} Unpredictable Wildcard ${{ matrix.task.action }} on ${{ matrix.os.name }}
runs-on: ${{ matrix.os.image }}
needs:
- Build-unpredictable-wildcard
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'inspect', 'artifact': 'github', 'action': 'actions/upload-artifact'}
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-unpredictable-wildcard
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'inspect'
with:
expected-files: |
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
lib/common.py
lib/shared.py
lib/.library
- name: 📋 Verify extracted tarball content
uses: ./.github/actions/check-directory-content
if: matrix.task.name == 'verify'
with:
expected-files: |
lib/gui/main.py
lib/gui/dialog.py
unexpected-files: |
lib/common.py
lib/shared.py
lib/.library
Verify-9:
name: Verify lib directory
runs-on: ubuntu-24.04
needs:
- Build
strategy:
fail-fast: false
matrix:
os:
- {'icon': '🐧', 'name': 'Ubuntu', 'image': 'ubuntu-24.04'}
task:
- {'name': 'verify' , 'artifact': 'pyTooling', 'action': 'pyTooling/upload-artifact'}
defaults:
run:
shell: bash
steps:
- name: ⏬ Checkout repository to use local actions
uses: actions/checkout@v4
- name: 📥 Download artifact uploaded via '${{ matrix.task.action }}'
uses: actions/download-artifact@v4
with:
name: ${{ matrix.os.name }}-${{ matrix.task.artifact }}-lib
- name: 🔎 Extract tarball
if: matrix.task.name == 'verify'
run: |
tar -xf "__pyTooling_upload_artifact__.tar"
rm __pyTooling_upload_artifact__.tar
- name: 🔎 Inspect directory
run: |
tree .
- name: 📋 Verify artifact content downloaded via 'actions/download-artifact'
uses: ./.github/actions/check-directory-content
with:
expected-files: |
common.py
shared.py
gui/dialog.py
gui/main.py
unexpected-files: |
.library