Files
files-hash/.github/workflows/examples.yml

158 lines
3.8 KiB
YAML

name: Usage Examples
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * 0' # Weekly on Sunday
jobs:
example-basic:
runs-on: ubuntu-latest
name: Basic Usage Example
steps:
- name: Setup pnpm
uses: pnpm/action-setup@v4
with:
version: 9
- name: Checkout
uses: actions/checkout@v4
- name: Calculate hash of a single file
id: single-file
uses: ./
with:
files: 'README.md'
algorithm: 'sha256'
- name: Display result
run: |
echo "📄 Single file hash:"
echo "Hash: ${{ steps.single-file.outputs.hash }}"
echo "Files processed: ${{ steps.single-file.outputs.file-count }}"
example-multiple:
runs-on: ubuntu-latest
name: Multiple Files Example
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Calculate hash of multiple files
id: multiple-files
uses: ./
with:
files: 'examples/*'
algorithm: 'md5'
- name: Display result
run: |
echo "📁 Multiple files hash:"
echo "Hash: ${{ steps.multiple-files.outputs.hash }}"
echo "Files processed: ${{ steps.multiple-files.outputs.file-count }}"
example-patterns:
runs-on: ubuntu-latest
name: Pattern Matching Example
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Calculate hash of JavaScript files
id: js-files
uses: ./
with:
files: '**/*.js'
algorithm: 'sha1'
- name: Display result
run: |
echo "🔧 JavaScript files hash:"
echo "Hash: ${{ steps.js-files.outputs.hash }}"
echo "Files processed: ${{ steps.js-files.outputs.file-count }}"
- name: Calculate hash of JSON files
id: json-files
uses: ./
with:
files: '**/*.json'
algorithm: 'sha256'
- name: Display result
run: |
echo "📋 JSON files hash:"
echo "Hash: ${{ steps.json-files.outputs.hash }}"
echo "Files processed: ${{ steps.json-files.outputs.file-count }}"
example-algorithms:
runs-on: ubuntu-latest
name: Different Algorithms Example
steps:
- name: Checkout
uses: actions/checkout@v4
- name: MD5 Hash
id: md5
uses: ./
with:
files: 'action.yml'
algorithm: 'md5'
- name: SHA1 Hash
id: sha1
uses: ./
with:
files: 'action.yml'
algorithm: 'sha1'
- name: SHA256 Hash
id: sha256
uses: ./
with:
files: 'action.yml'
algorithm: 'sha256'
- name: SHA512 Hash
id: sha512
uses: ./
with:
files: 'action.yml'
algorithm: 'sha512'
- name: Display all results
run: |
echo "🔐 Different algorithm results for action.yml:"
echo "MD5: ${{ steps.md5.outputs.hash }}"
echo "SHA1: ${{ steps.sha1.outputs.hash }}"
echo "SHA256: ${{ steps.sha256.outputs.hash }}"
echo "SHA512: ${{ steps.sha512.outputs.hash }}"
example-error-handling:
runs-on: ubuntu-latest
name: Error Handling Example
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Handle missing files (expected to fail)
id: graceful
continue-on-error: true
uses: ./
with:
files: 'missing-*.txt'
algorithm: 'sha256'
- name: Check graceful result
run: |
if [ "${{ steps.graceful.outcome }}" == "failure" ]; then
echo "✅ Correctly failed when files are missing"
else
echo "❌ Should have failed but didn't"
exit 1
fi