Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@

| Tool | Description |
|----------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------|
| **[act](tools/act)** | Run GitHub Actions locally using Docker for faster workflow development and testing. |
| **[Argo](tools/Argo)** | Open Source Kubernetes native workflows, events, CI and CD. |
| **[ArgoCD](tools/ArgoCD)** | Declarative GitOps continuous delivery tool for Kubernetes applications. |
| **[Bamboo](tools/Bamboo)** | Atlassian's CI/CD server that ties automated builds, tests, and releases together in a single workflow. |
Expand Down
4 changes: 4 additions & 0 deletions logos/act.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 6 additions & 0 deletions tools/GitHub-Actions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -151,6 +151,12 @@ After pushing your workflow file to the repository, GitHub Actions will automati

This allows you to debug failures, monitor CI/CD progress in real-time, and verify that your pipeline stages complete successfully.

### Step 2: Testing Workflows Locally

Before pushing changes to GitHub, you can test workflows locally using **[act](../act)** - a tool that runs GitHub Actions on your local machine using Docker. This speeds up development by letting you iterate on workflows without committing and pushing changes.

Learn more: **[act - Run GitHub Actions Locally](../act/README.md)**

## Advanced Example: Building and Publishing Docker Images

The following workflow demonstrates how to build a Docker image and push it to a container registry:
Expand Down
132 changes: 132 additions & 0 deletions tools/act/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# act

![act Logo](../../logos/act.svg)

## Overview

Run your GitHub Actions locally! `act` is a command-line tool that allows you to test and debug GitHub Actions workflows on your local machine using Docker. It eliminates the need to commit and push changes to GitHub just to test workflow modifications, significantly speeding up the development cycle for CI/CD pipelines.

## Key Features

- **Local Workflow Execution**: Run GitHub Actions workflows locally without pushing to GitHub
- **Docker-Based**: Uses Docker containers to simulate GitHub-hosted runners
- **Event Simulation**: Trigger workflows with custom event payloads
- **Secret Management**: Support for environment variables and secrets locally
- **Fast Iteration**: Test workflow changes instantly without waiting for cloud runners
- **Multiple Runner Images**: Supports ubuntu, macos, and windows runner environments
- **Workflow Debugging**: Step through workflow execution to identify issues quickly

## Getting Started

### Installation

```bash
# macOS
brew install act

# Linux
curl https://raw.githubusercontent.com/nektos/act/master/install.sh | sudo bash

# Windows (using Chocolatey)
choco install act-cli

# Using Go
go install github.com/nektos/act@latest
```

### Basic Usage

```bash
# List available workflows in current repository
act -l

# Run the default event (push)
act

# Run a specific workflow event
act pull_request

# Run a specific job
act -j test

# Run with custom event payload
act -e event.json

# Use a specific runner image
act -P ubuntu-latest=catthehacker/ubuntu:act-latest

# Run a specific workflow file
act -W .github/workflows/ci.yml
```

### Example: Testing a Workflow Locally

Create a simple workflow file `.github/workflows/test.yml`:

```yaml
name: Test Workflow
on: [push]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run tests
run: echo "Running tests..."
```

Test it locally:

```bash
# Run the push event workflow
act push

# Run a specific workflow file with a specific event
act push -W .github/workflows/test.yml

# Dry run to see what would happen
act -n

# Run with verbose output
act -v
```

#### Example Output

When running the test workflow, you'll see output similar to this:

![act Test Workflow Output](images/act-test-workflow-output.png)

### Working with Secrets

```bash
# Create .secrets file
echo "GITHUB_TOKEN=your_token" > .secrets

# Run workflow with secrets
act --secret-file .secrets

# Or pass secrets as environment variables
act -s GITHUB_TOKEN=your_token
```

### Using Custom Runner Images

```bash
# Use a smaller image for faster execution
act -P ubuntu-latest=node:16-buster-slim

# Configure default platforms in .actrc
cat > ~/.actrc << EOF
-P ubuntu-latest=catthehacker/ubuntu:act-latest
-P ubuntu-20.04=catthehacker/ubuntu:act-20.04
-P ubuntu-18.04=catthehacker/ubuntu:act-18.04
EOF
```

## Resources

- **Documentation & User Guide**: https://nektosact.com/introduction.html
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The URL in the Documentation & User Guide link appears to be incorrect. The URL https://nektosact.com/introduction.html is missing a dot between "nektos" and "act". It should be https://nektosact.com/ or more likely https://nektos.github.io/act/ based on the actual documentation location for the nektos/act project.

Suggested change
- **Documentation & User Guide**: https://nektosact.com/introduction.html
- **Documentation & User Guide**: https://nektos.github.io/act/

Copilot uses AI. Check for mistakes.
- **Official GitHub Repository**: https://github.com/nektos/act
- **Releases**: https://github.com/nektos/act/releases
Comment on lines +127 to +131
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Fix Resources section formatting to match project standards.

The Resources section has two formatting issues:

  1. Extra leading space before list items (should be - not -)
  2. Bare URLs instead of markdown link format

Compare with tools/GitHub-Actions/README.md (lines 256-262) for the proper format and the main README template (lines 699-703).

Apply this diff to fix formatting:

 ## Resources
 
- - **Documentation & User Guide**: https://nektosact.com/introduction.html
- - **Official GitHub Repository**: https://github.com/nektos/act
- - **Releases**: https://github.com/nektos/act/releases
+ - [Documentation & User Guide](https://nektosact.com/introduction.html)
+ - [Official GitHub Repository](https://github.com/nektos/act)
+ - [Releases](https://github.com/nektos/act/releases)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
## Resources
- **Documentation & User Guide**: https://nektosact.com/introduction.html
- **Official GitHub Repository**: https://github.com/nektos/act
- **Releases**: https://github.com/nektos/act/releases
## Resources
- [Documentation & User Guide](https://nektosact.com/introduction.html)
- [Official GitHub Repository](https://github.com/nektos/act)
- [Releases](https://github.com/nektos/act/releases)
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

129-129: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


129-129: Bare URL used

(MD034, no-bare-urls)


130-130: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


130-130: Bare URL used

(MD034, no-bare-urls)


131-131: Unordered list indentation
Expected: 0; Actual: 1

(MD007, ul-indent)


131-131: Bare URL used

(MD034, no-bare-urls)

🤖 Prompt for AI Agents
In tools/act/README.md around lines 127 to 131 the Resources list items use an
extra leading space before the dash and include bare URLs; change each list item
to use "- " (no leading space) and convert bare URLs into markdown link syntax
like [Label](URL) matching the format used in tools/GitHub-Actions/README.md
lines 256-262 and the main README template lines 699-703 so each entry is a
properly labeled markdown link.

Comment on lines +129 to +131
Copy link

Copilot AI Dec 8, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Resources section formatting is inconsistent with other tools in the repository. Based on the project conventions (seen in tools like Docker and Terraform), the Resources section should use markdown links in a bulleted list format:

- [Official Website](url)
- [Documentation](url)
- [GitHub Repository](url)

Instead, this uses:

 - **Documentation & User Guide**: url
 - **Official GitHub Repository**: url

The bold labels and descriptions should be removed to match the standard format.

Suggested change
- **Documentation & User Guide**: https://nektosact.com/introduction.html
- **Official GitHub Repository**: https://github.com/nektos/act
- **Releases**: https://github.com/nektos/act/releases
- [Documentation](https://nektosact.com/introduction.html)
- [GitHub Repository](https://github.com/nektos/act)
- [Releases](https://github.com/nektos/act/releases)

Copilot uses AI. Check for mistakes.

Binary file added tools/act/images/act-test-workflow-output.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.