158 lines
3.8 KiB
YAML
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
|