Compare commits
No commits in common. "83c4af4bc5bde1b8a1174551030f214a57d104a3" and "7f423652e3d822945f2f0fe67062cfd7305d98fd" have entirely different histories.
83c4af4bc5
...
7f423652e3
5 changed files with 4 additions and 257 deletions
|
@ -1,7 +1,3 @@
|
||||||
# NOTE: This Drone CI configuration is being replaced by Forgejo Actions
|
|
||||||
# See .forgejo/workflows/ directory for the new CI/CD configuration
|
|
||||||
# This file is kept for reference and backward compatibility
|
|
||||||
|
|
||||||
kind: pipeline
|
kind: pipeline
|
||||||
type: docker
|
type: docker
|
||||||
name: podcastrr
|
name: podcastrr
|
||||||
|
@ -52,4 +48,4 @@ trigger:
|
||||||
- main
|
- main
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
- pull_request
|
- pull_request
|
|
@ -1,79 +0,0 @@
|
||||||
name: Build and Publish
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
tags:
|
|
||||||
- 'v*'
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: docker
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v4
|
|
||||||
with:
|
|
||||||
python-version: '3.8'
|
|
||||||
|
|
||||||
- name: Install dependencies
|
|
||||||
run: |
|
|
||||||
python -m pip install --upgrade pip
|
|
||||||
pip install -r requirements.txt
|
|
||||||
|
|
||||||
- name: Run tests
|
|
||||||
run: |
|
|
||||||
pytest
|
|
||||||
|
|
||||||
build:
|
|
||||||
needs: test
|
|
||||||
runs-on: docker
|
|
||||||
if: github.event_name == 'push' && (startsWith(github.ref, 'refs/tags/v') || github.ref == 'refs/heads/main')
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Set up Docker Buildx
|
|
||||||
uses: docker/setup-buildx-action@v2
|
|
||||||
|
|
||||||
- name: Login to Forgejo Container Registry
|
|
||||||
uses: docker/login-action@v2
|
|
||||||
with:
|
|
||||||
registry: ${{ secrets.FORGEJO_REGISTRY }}
|
|
||||||
username: ${{ secrets.FORGEJO_USERNAME }}
|
|
||||||
password: ${{ secrets.FORGEJO_PASSWORD }}
|
|
||||||
|
|
||||||
- name: Extract metadata for Docker
|
|
||||||
id: meta
|
|
||||||
uses: docker/metadata-action@v4
|
|
||||||
with:
|
|
||||||
images: ${{ secrets.FORGEJO_REGISTRY }}/${{ secrets.FORGEJO_USERNAME }}/podcastrr
|
|
||||||
tags: |
|
|
||||||
type=ref,event=branch
|
|
||||||
type=ref,event=pr
|
|
||||||
type=semver,pattern={{version}}
|
|
||||||
type=sha,format=short
|
|
||||||
|
|
||||||
- name: Build and push Docker image
|
|
||||||
uses: docker/build-push-action@v4
|
|
||||||
with:
|
|
||||||
context: .
|
|
||||||
push: true
|
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
|
||||||
cache-from: type=registry,ref=${{ secrets.FORGEJO_REGISTRY }}/${{ secrets.FORGEJO_USERNAME }}/podcastrr:buildcache
|
|
||||||
cache-to: type=registry,ref=${{ secrets.FORGEJO_REGISTRY }}/${{ secrets.FORGEJO_USERNAME }}/podcastrr:buildcache,mode=max
|
|
||||||
|
|
||||||
notify:
|
|
||||||
needs: [build]
|
|
||||||
runs-on: docker
|
|
||||||
if: always()
|
|
||||||
steps:
|
|
||||||
- name: Notify about build status
|
|
||||||
run: |
|
|
||||||
echo "Build completed with status: ${{ job.status }}"
|
|
||||||
# Add webhook notification or other notification methods if needed
|
|
|
@ -1,6 +0,0 @@
|
||||||
on: [push]
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: docker
|
|
||||||
steps:
|
|
||||||
- run: echo All Good
|
|
|
@ -1,135 +0,0 @@
|
||||||
# Podcastrr - Forgejo Actions Guide
|
|
||||||
|
|
||||||
This document provides detailed information about the Forgejo Actions implementation in this project.
|
|
||||||
|
|
||||||
## Overview
|
|
||||||
|
|
||||||
Forgejo Actions is a CI/CD feature provided by Forgejo that allows you to automate your software development workflows. This project uses Forgejo Actions to automate testing, building, and publishing Docker images.
|
|
||||||
|
|
||||||
## Workflow Files
|
|
||||||
|
|
||||||
All workflow files are located in the `.forgejo/workflows/` directory:
|
|
||||||
|
|
||||||
### 1. Demo Workflow (demo.yaml)
|
|
||||||
|
|
||||||
A simple example workflow that demonstrates basic Forgejo Actions functionality:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
on: [push]
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
runs-on: docker
|
|
||||||
steps:
|
|
||||||
- run: echo All Good
|
|
||||||
```
|
|
||||||
|
|
||||||
This workflow:
|
|
||||||
- Runs on every push to any branch
|
|
||||||
- Uses a Docker container as the execution environment
|
|
||||||
- Simply outputs "All Good" to demonstrate successful execution
|
|
||||||
|
|
||||||
### 2. Build and Publish Workflow (build.yml)
|
|
||||||
|
|
||||||
A comprehensive CI/CD pipeline that handles testing, building, and publishing:
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: Build and Publish
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
tags:
|
|
||||||
- 'v*'
|
|
||||||
pull_request:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
# Test job configuration
|
|
||||||
# ...
|
|
||||||
|
|
||||||
build:
|
|
||||||
# Build job configuration
|
|
||||||
# ...
|
|
||||||
|
|
||||||
notify:
|
|
||||||
# Notification job configuration
|
|
||||||
# ...
|
|
||||||
```
|
|
||||||
|
|
||||||
This workflow:
|
|
||||||
- Runs on pushes to the main branch, any tag starting with 'v', and pull requests to the main branch
|
|
||||||
- Contains three jobs: test, build, and notify
|
|
||||||
- Uses Docker containers for all jobs
|
|
||||||
- Builds and publishes Docker images to the Forgejo container registry
|
|
||||||
|
|
||||||
## How to Use
|
|
||||||
|
|
||||||
### Prerequisites
|
|
||||||
|
|
||||||
1. Ensure your Forgejo instance has Actions enabled
|
|
||||||
2. Configure the required secrets in your repository settings:
|
|
||||||
- `FORGEJO_REGISTRY`: Your Forgejo container registry URL
|
|
||||||
- `FORGEJO_USERNAME`: Your Forgejo username
|
|
||||||
- `FORGEJO_PASSWORD`: Your Forgejo password
|
|
||||||
|
|
||||||
### Enabling Actions
|
|
||||||
|
|
||||||
1. Go to your repository settings
|
|
||||||
2. Navigate to the Repository tab
|
|
||||||
3. Ensure "Enable Repository Actions" is checked
|
|
||||||
4. Save your settings
|
|
||||||
|
|
||||||
### Viewing Workflow Results
|
|
||||||
|
|
||||||
1. Go to your repository
|
|
||||||
2. Click on the "Actions" tab
|
|
||||||
3. You'll see a list of workflow runs
|
|
||||||
4. Click on a run to see details and logs
|
|
||||||
|
|
||||||
### Triggering Workflows Manually
|
|
||||||
|
|
||||||
Some workflows can be triggered manually:
|
|
||||||
|
|
||||||
1. Go to your repository
|
|
||||||
2. Click on the "Actions" tab
|
|
||||||
3. Select the workflow you want to run
|
|
||||||
4. Click "Run workflow"
|
|
||||||
5. Select the branch and provide any inputs if required
|
|
||||||
6. Click "Run workflow"
|
|
||||||
|
|
||||||
## Customizing Workflows
|
|
||||||
|
|
||||||
You can customize the existing workflows or create new ones:
|
|
||||||
|
|
||||||
1. Edit the files in the `.forgejo/workflows/` directory
|
|
||||||
2. Commit and push your changes
|
|
||||||
3. The updated workflows will be used for future runs
|
|
||||||
|
|
||||||
## Troubleshooting
|
|
||||||
|
|
||||||
### Common Issues
|
|
||||||
|
|
||||||
1. **Workflow not running**:
|
|
||||||
- Check if Actions is enabled in your repository settings
|
|
||||||
- Verify that the workflow file syntax is correct
|
|
||||||
|
|
||||||
2. **Build failures**:
|
|
||||||
- Check the workflow run logs for error messages
|
|
||||||
- Ensure all required secrets are configured correctly
|
|
||||||
|
|
||||||
3. **Docker image not publishing**:
|
|
||||||
- Verify your container registry credentials
|
|
||||||
- Check if your Forgejo instance has the container registry enabled
|
|
||||||
|
|
||||||
### Getting Help
|
|
||||||
|
|
||||||
If you encounter issues with Forgejo Actions, consult the [Forgejo documentation](https://forgejo.org/docs/) or open an issue in this repository.
|
|
||||||
|
|
||||||
## References
|
|
||||||
|
|
||||||
- [Forgejo Actions User Guide](https://forgejo.org/docs/actions/)
|
|
||||||
- [Forgejo Documentation](https://forgejo.org/docs/)
|
|
||||||
- [Docker Documentation](https://docs.docker.com/)
|
|
|
@ -5,7 +5,7 @@ This guide explains how to set up and use Podcastrr with Forgejo for CI/CD and c
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
|
|
||||||
- A Forgejo instance with:
|
- A Forgejo instance with:
|
||||||
- Forgejo Actions enabled (preferred) or CI/CD capabilities (Drone integration)
|
- CI/CD capabilities (Drone integration)
|
||||||
- Container registry enabled
|
- Container registry enabled
|
||||||
- Docker and Docker Compose installed on your local machine
|
- Docker and Docker Compose installed on your local machine
|
||||||
- Git installed on your local machine
|
- Git installed on your local machine
|
||||||
|
@ -28,48 +28,19 @@ This guide explains how to set up and use Podcastrr with Forgejo for CI/CD and c
|
||||||
|
|
||||||
In your Forgejo repository settings, add the following secrets:
|
In your Forgejo repository settings, add the following secrets:
|
||||||
|
|
||||||
#### For Forgejo Actions (Recommended)
|
|
||||||
Navigate to your repository settings, then Actions, then Secrets:
|
|
||||||
|
|
||||||
- `FORGEJO_REGISTRY`: Your Forgejo container registry URL (e.g., `registry.your-forgejo-instance.com`)
|
|
||||||
- `FORGEJO_USERNAME`: Your Forgejo username
|
|
||||||
- `FORGEJO_PASSWORD`: Your Forgejo password
|
|
||||||
|
|
||||||
#### For Drone CI (Legacy)
|
|
||||||
Navigate to your repository settings, then Secrets:
|
|
||||||
|
|
||||||
- `docker_username`: Your Forgejo username or container registry username
|
- `docker_username`: Your Forgejo username or container registry username
|
||||||
- `docker_password`: Your Forgejo password or container registry password
|
- `docker_password`: Your Forgejo password or container registry password
|
||||||
- `webhook_url` (optional): URL for build notifications
|
- `webhook_url` (optional): URL for build notifications
|
||||||
|
|
||||||
### 3. Environment Variables
|
### 3. Environment Variables
|
||||||
|
|
||||||
#### For Drone CI (Legacy)
|
|
||||||
Configure the following environment variables in your Forgejo CI/CD settings:
|
Configure the following environment variables in your Forgejo CI/CD settings:
|
||||||
|
|
||||||
- `DRONE_REGISTRY`: Your Forgejo container registry URL (e.g., `registry.your-forgejo-instance.com`)
|
- `DRONE_REGISTRY`: Your Forgejo container registry URL (e.g., `registry.your-forgejo-instance.com`)
|
||||||
|
|
||||||
## CI/CD Pipeline
|
## CI/CD Pipeline
|
||||||
|
|
||||||
### Forgejo Actions (Recommended)
|
The included `.drone.yml` file defines a CI/CD pipeline that:
|
||||||
|
|
||||||
The project includes Forgejo Actions workflows in the `.forgejo/workflows/` directory:
|
|
||||||
|
|
||||||
1. **Demo Workflow** (`.forgejo/workflows/demo.yaml`): A simple example workflow that runs on every push.
|
|
||||||
|
|
||||||
2. **Build and Publish Workflow** (`.forgejo/workflows/build.yml`): A comprehensive CI/CD pipeline that:
|
|
||||||
- Runs tests on every push and pull request
|
|
||||||
- Builds and pushes a Docker image to your container registry on pushes to the main branch or tags
|
|
||||||
- Provides build status notifications
|
|
||||||
|
|
||||||
To use Forgejo Actions:
|
|
||||||
1. Ensure "Enable Repository Actions" is checked in your repository settings
|
|
||||||
2. The workflows will automatically run when you push to the repository
|
|
||||||
3. View results in the Actions tab of your repository
|
|
||||||
|
|
||||||
### Drone CI (Legacy)
|
|
||||||
|
|
||||||
The included `.drone.yml` file defines a legacy CI/CD pipeline that:
|
|
||||||
|
|
||||||
1. Runs tests on every push and pull request
|
1. Runs tests on every push and pull request
|
||||||
2. Builds and pushes a Docker image to your container registry on pushes to the main branch
|
2. Builds and pushes a Docker image to your container registry on pushes to the main branch
|
||||||
|
@ -132,4 +103,4 @@ docker build -t podcastrr:local .
|
||||||
|
|
||||||
- [Forgejo Documentation](https://forgejo.org/docs/)
|
- [Forgejo Documentation](https://forgejo.org/docs/)
|
||||||
- [Drone CI Documentation](https://docs.drone.io/)
|
- [Drone CI Documentation](https://docs.drone.io/)
|
||||||
- [Docker Documentation](https://docs.docker.com/)
|
- [Docker Documentation](https://docs.docker.com/)
|
Loading…
Add table
Add a link
Reference in a new issue