mirror of
https://github.com/th30d4y/ExecuTrace.git
synced 2026-05-26 11:35:51 +00:00
Add GitHub Packages publishing workflow and documentation
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
name: Publish to GitHub Packages
|
||||
|
||||
on:
|
||||
release:
|
||||
types: [created, published]
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
build-and-publish:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
packages: write
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Python
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.9'
|
||||
|
||||
- name: Install build dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install build twine
|
||||
|
||||
- name: Build distribution packages
|
||||
run: python -m build
|
||||
|
||||
- name: Publish to GitHub Packages
|
||||
run: |
|
||||
python -m twine upload dist/* \
|
||||
--repository-url https://python.pkg.github.com/${{ github.repository_owner }} \
|
||||
--username ${{ github.actor }} \
|
||||
--password ${{ secrets.GITHUB_TOKEN }} \
|
||||
--verbose
|
||||
@@ -0,0 +1,78 @@
|
||||
# GitHub Packages Configuration Guide
|
||||
|
||||
## Publishing to GitHub Packages
|
||||
|
||||
This project is configured to automatically publish to GitHub Packages when a release is created.
|
||||
|
||||
### Automatic Publishing (GitHub Actions)
|
||||
|
||||
When you create a release on GitHub (using git tag), the workflow in `.github/workflows/publish-to-github-packages.yml` will:
|
||||
|
||||
1. Build the Python package
|
||||
2. Publish to GitHub Packages Python registry
|
||||
3. Make it available at: `https://github.com/Stalin-143/ExecuTrace/packages`
|
||||
|
||||
### Creating a Release
|
||||
|
||||
```bash
|
||||
git tag -a v1.0.1 -m "Version 1.0.1"
|
||||
git push origin v1.0.1
|
||||
```
|
||||
|
||||
Or use GitHub's web interface to create a release from an existing tag.
|
||||
|
||||
### Manual Publishing to GitHub Packages
|
||||
|
||||
If you need to publish manually:
|
||||
|
||||
```bash
|
||||
# Build the package
|
||||
python -m build
|
||||
|
||||
# Install twine if not already installed
|
||||
pip install twine
|
||||
|
||||
# Publish to GitHub Packages
|
||||
python -m twine upload dist/* \
|
||||
--repository-url https://python.pkg.github.com/Stalin-143 \
|
||||
--username YOUR_GITHUB_USERNAME \
|
||||
--password YOUR_GITHUB_TOKEN
|
||||
```
|
||||
|
||||
### GitHub Token
|
||||
|
||||
You'll need a GitHub Personal Access Token with `write:packages` scope:
|
||||
|
||||
1. Go to GitHub Settings → Developer settings → Personal access tokens
|
||||
2. Generate new token with `write:packages` scope
|
||||
3. Use token as password in twine commands
|
||||
|
||||
### Installing from GitHub Packages
|
||||
|
||||
Others can install your package from GitHub Packages:
|
||||
|
||||
```bash
|
||||
# Create a .netrc file in your home directory
|
||||
cat > ~/.netrc << EOF
|
||||
machine python.pkg.github.com
|
||||
login YOUR_USERNAME
|
||||
password YOUR_TOKEN
|
||||
EOF
|
||||
|
||||
# Then install
|
||||
pip install --index-url https://python.pkg.github.com/Stalin-143 exectrace-workflow
|
||||
```
|
||||
|
||||
### Workflow Details
|
||||
|
||||
The GitHub Actions workflow automatically:
|
||||
- Runs on release creation
|
||||
- Can be manually triggered via `workflow_dispatch`
|
||||
- Uses `GITHUB_TOKEN` for authentication
|
||||
- Requires no additional secrets setup
|
||||
|
||||
---
|
||||
|
||||
**Current Version:** 1.0.1
|
||||
**Repository:** https://github.com/Stalin-143/ExecuTrace
|
||||
**Packages:** https://github.com/Stalin-143/ExecuTrace/packages
|
||||
Reference in New Issue
Block a user