diff --git a/.drone.yml b/.drone.yml index abbe7f6..dfc291f 100644 --- a/.drone.yml +++ b/.drone.yml @@ -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 type: docker name: podcastrr @@ -52,4 +48,4 @@ trigger: - main event: - push - - pull_request + - pull_request \ No newline at end of file diff --git a/.forgejo/workflows/build.yml b/.forgejo/workflows/build.yml deleted file mode 100644 index d3d7f19..0000000 --- a/.forgejo/workflows/build.yml +++ /dev/null @@ -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 \ No newline at end of file diff --git a/.forgejo/workflows/demo.yaml b/.forgejo/workflows/demo.yaml deleted file mode 100644 index 21280bd..0000000 --- a/.forgejo/workflows/demo.yaml +++ /dev/null @@ -1,6 +0,0 @@ -on: [push] -jobs: - test: - runs-on: docker - steps: - - run: echo All Good \ No newline at end of file diff --git a/README_ACTIONS.md b/README_ACTIONS.md deleted file mode 100644 index 08f28f2..0000000 --- a/README_ACTIONS.md +++ /dev/null @@ -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/) \ No newline at end of file diff --git a/README_FORGEJO.md b/README_FORGEJO.md index d9d5a2b..dae9ddf 100644 --- a/README_FORGEJO.md +++ b/README_FORGEJO.md @@ -5,7 +5,7 @@ This guide explains how to set up and use Podcastrr with Forgejo for CI/CD and c ## Prerequisites - A Forgejo instance with: - - Forgejo Actions enabled (preferred) or CI/CD capabilities (Drone integration) + - CI/CD capabilities (Drone integration) - Container registry enabled - Docker and Docker Compose 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: -#### 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_password`: Your Forgejo password or container registry password - `webhook_url` (optional): URL for build notifications ### 3. Environment Variables -#### For Drone CI (Legacy) 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`) ## CI/CD Pipeline -### Forgejo Actions (Recommended) - -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: +The included `.drone.yml` file defines a CI/CD pipeline that: 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 @@ -132,4 +103,4 @@ docker build -t podcastrr:local . - [Forgejo Documentation](https://forgejo.org/docs/) - [Drone CI Documentation](https://docs.drone.io/) -- [Docker Documentation](https://docs.docker.com/) +- [Docker Documentation](https://docs.docker.com/) \ No newline at end of file