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