Add GitHub Actions workflow for releases #2
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Release Workflow | |
| on: | |
| push: | |
| tags: | |
| - "v*.*.*" # Triggers on pushes to tags like v1.0.0, v1.0.1, etc. | |
| jobs: | |
| release: | |
| name: Create GitHub Release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| # Optional: Run tests before releasing to ensure quality | |
| - name: Set up Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: "3.x" # Use a general Python version for release testing | |
| - name: Install dependencies | |
| run: | | |
| python -m pip install --upgrade pip | |
| pip install -r requirements.txt | |
| - name: Run tests | |
| run: PYTHONPATH=. pytest | |
| - name: Create release archive | |
| run: | | |
| # Create a directory for the release contents | |
| mkdir release-package | |
| # Copy essential files | |
| cp wlist.py release-package/ | |
| cp nepali-names.txt release-package/ | |
| cp README.md release-package/ | |
| cp LICENSE release-package/ | |
| cp Makefile release-package/ | |
| cp requirements.txt release-package/ | |
| # Zip the contents | |
| zip -r "wordlist-toolkit-${{ github.ref_name }}.zip" release-package/ | |
| - name: Generate Comprehensive Wordlist | |
| id: generate_wordlist | |
| run: | | |
| python3 wlist.py generate \ | |
| --capitalize \ | |
| --add-numbers 1-9999 \ | |
| --add-years \ | |
| --add-common-suffixes \ | |
| --out complete_generated_wordlist.txt | |
| zip complete-wordlist.zip complete_generated_wordlist.txt | |
| - name: Create Release | |
| id: create_release | |
| uses: actions/create-release@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| tag_name: ${{ github.ref }} | |
| release_name: Release ${{ github.ref }} | |
| body: | | |
| # Release Notes for ${{ github.ref }} | |
| This release provides the latest version of the Wordlist Toolkit. | |
| ## Assets: | |
| - `wordlist-toolkit-${{ github.ref_name }}.zip`: A complete archive of the project files. | |
| - `complete-wordlist.zip`: A comprehensive wordlist generated with all possible combinations (capitalized names, numbers 1-9999, recent years, and common suffixes). | |
| draft: false | |
| prerelease: false | |
| - name: Upload Main Release Archive | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./wordlist-toolkit-${{ github.ref_name }}.zip | |
| asset_name: wordlist-toolkit-${{ github.ref_name }}.zip | |
| asset_content_type: application/zip | |
| - name: Upload Complete Wordlist Archive | |
| uses: actions/upload-release-asset@v1 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| upload_url: ${{ steps.create_release.outputs.upload_url }} | |
| asset_path: ./complete-wordlist.zip | |
| asset_name: complete-wordlist.zip | |
| asset_content_type: application/zip |