Skip to content

Add GitHub Actions workflow for releases #2

Add GitHub Actions workflow for releases

Add GitHub Actions workflow for releases #2

Workflow file for this run

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