feat: 初始化文件哈希 GitHub Action 项目
This commit is contained in:
157
.github/workflows/examples.yml
vendored
Normal file
157
.github/workflows/examples.yml
vendored
Normal file
@@ -0,0 +1,157 @@
|
||||
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
|
||||
Reference in New Issue
Block a user