- Add cross-platform build workflow for macOS, Windows, Linux - Add CI workflow with Rust code quality checks - Add manual release workflow with automatic asset publishing - Add dependency management workflow with security monitoring - Update README with build status badges - Remove unused Prettier/ESLint configurations - Focus on Rust code quality and build verification
127 lines
3.6 KiB
YAML
127 lines
3.6 KiB
YAML
name: Update Dependencies
|
|
|
|
on:
|
|
schedule:
|
|
# Run every Monday at 9:00 AM UTC
|
|
- cron: '0 9 * * 1'
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
update-dependencies:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 8
|
|
|
|
- name: Setup Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Install cargo-edit
|
|
run: cargo install cargo-edit
|
|
|
|
- name: Update frontend dependencies
|
|
run: |
|
|
pnpm update --latest
|
|
pnpm install
|
|
|
|
- name: Update Rust dependencies
|
|
run: |
|
|
cargo update
|
|
working-directory: src-tauri
|
|
|
|
- name: Check if build still works
|
|
run: |
|
|
pnpm build
|
|
cargo check --all-targets --all-features
|
|
working-directory: src-tauri
|
|
|
|
- name: Create Pull Request
|
|
uses: peter-evans/create-pull-request@v5
|
|
with:
|
|
token: ${{ secrets.GITHUB_TOKEN }}
|
|
commit-message: 'chore: update dependencies'
|
|
title: 'chore: update dependencies'
|
|
body: |
|
|
## Automated Dependency Update
|
|
|
|
This PR updates all dependencies to their latest versions.
|
|
|
|
### Changes
|
|
- Updated frontend dependencies via `pnpm update --latest`
|
|
- Updated Rust dependencies via `cargo update`
|
|
|
|
### Testing
|
|
- ✅ Frontend build passes
|
|
- ✅ Rust compilation check passes
|
|
|
|
Please review the changes and run full tests before merging.
|
|
branch: chore/update-dependencies
|
|
delete-branch: true
|
|
|
|
security-updates:
|
|
runs-on: ubuntu-latest
|
|
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Setup Node.js
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: '20'
|
|
|
|
- name: Setup pnpm
|
|
uses: pnpm/action-setup@v4
|
|
with:
|
|
version: 8
|
|
|
|
- name: Setup Rust
|
|
uses: dtolnay/rust-toolchain@stable
|
|
|
|
- name: Install cargo-audit
|
|
run: cargo install cargo-audit
|
|
|
|
- name: Check for security vulnerabilities
|
|
run: |
|
|
echo "## Frontend Security Audit" >> security-report.md
|
|
pnpm audit --audit-level moderate >> security-report.md || true
|
|
|
|
echo "## Rust Security Audit" >> security-report.md
|
|
cd src-tauri
|
|
cargo audit >> ../security-report.md || true
|
|
|
|
- name: Create security issue if vulnerabilities found
|
|
uses: actions/github-script@v7
|
|
with:
|
|
script: |
|
|
const fs = require('fs');
|
|
const report = fs.readFileSync('security-report.md', 'utf8');
|
|
|
|
if (report.includes('vulnerabilities') || report.includes('RUSTSEC')) {
|
|
github.rest.issues.create({
|
|
owner: context.repo.owner,
|
|
repo: context.repo.repo,
|
|
title: '🔒 Security vulnerabilities detected',
|
|
body: `## Security Audit Report\n\n\`\`\`\n${report}\n\`\`\`\n\nPlease review and update the affected dependencies.`,
|
|
labels: ['security', 'dependencies']
|
|
});
|
|
}
|