Skip to content

Commit 55df5f0

Browse files
committed
docs: add GitHub Actions workflow root cause analysis and fix guide
1 parent bc13fd6 commit 55df5f0

1 file changed

Lines changed: 126 additions & 0 deletions

File tree

WORKFLOW_FIX_GUIDE.md

Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
# GitHub Actions Workflow Fix - Root Cause and Solution
2+
3+
## ROOT CAUSE IDENTIFIED
4+
5+
The workflow `project-automation.yml` **does NOT exist on the `main` branch** (the repository's default branch).
6+
7+
### Why This Breaks Everything
8+
9+
GitHub Actions has a specific behavior:
10+
- **Workflows are discovered and executed from the default branch (main) only**
11+
- When you create an issue or PR in the repository, GitHub searches the `main` branch for matching workflows
12+
- If the workflow file isn't on `main`, it cannot be triggered, regardless of whether it exists on other branches
13+
14+
### Current State
15+
16+
```
17+
Branch: develop → project-automation.yml EXISTS ✓
18+
Branch: main → project-automation.yml NOT FOUND ✗
19+
20+
Comparison with working workflows:
21+
- release.yml → EXISTS on both main and develop ✓
22+
- test_build.yml → EXISTS on both main and develop ✓
23+
```
24+
25+
## SOLUTION: Merge to Main Branch
26+
27+
The workflow file must be accessible on the main branch. Since main is protected and requires PRs, follow these steps:
28+
29+
### Step 1: Create a PR from develop to main
30+
31+
```bash
32+
# Option A: Via gh CLI (recommended)
33+
gh pr create \
34+
--title "ci: enable project automation workflow on main" \
35+
--body "This PR brings the project-automation.yml workflow from develop to main, enabling it to trigger on issues and PRs." \
36+
--base main \
37+
--head develop
38+
39+
# Option B: Via GitHub Web UI
40+
# 1. Go to: https://github.com/overwrite00/NullifyPDF
41+
# 2. Click "Contribute" → "Open pull request"
42+
# 3. Set base: main, compare: develop
43+
# 4. Title: "ci: enable project automation workflow on main"
44+
# 5. Submit
45+
```
46+
47+
### Step 2: Wait for CI checks
48+
49+
- The test_build.yml workflow will run on this PR (since it triggers on PRs to main)
50+
- Review any CI feedback
51+
52+
### Step 3: Merge the PR
53+
54+
- Once CI passes and you're ready, merge the PR to main
55+
- This will add project-automation.yml to the main branch
56+
57+
### Step 4: Verify on Main
58+
59+
After merge, verify the file exists on main:
60+
61+
```bash
62+
git fetch origin main
63+
git cat-file -e origin/main:.github/workflows/project-automation.yml
64+
echo "If this shows no error, the workflow is now on main"
65+
```
66+
67+
### Step 5: Test the Workflow
68+
69+
Create a new test issue/PR from the main branch:
70+
71+
```bash
72+
# Option A: Via GitHub Web UI - create issue on main branch context
73+
# Option B: Via gh CLI
74+
gh issue create \
75+
--title "Test workflow automation" \
76+
--body "Testing if workflow now triggers"
77+
```
78+
79+
Then check GitHub Actions tab to see if project-automation runs.
80+
81+
## EXPECTED BEHAVIOR AFTER FIX
82+
83+
Once merged to main:
84+
85+
1. ✓ Creating issues will trigger the workflow
86+
2. ✓ Creating/reopening PRs will trigger the workflow
87+
3. ✓ Closing PRs will trigger the workflow
88+
4. ✓ Items will be auto-assigned to @overwrite00
89+
5. ✓ Items will be auto-added to the GitHub Project
90+
91+
## TECHNICAL DETAILS
92+
93+
### Why Develop-Only Doesn't Work
94+
95+
In GitHub Actions, repository events like "issue created" or "pull request opened" are global events that aren't tied to a specific branch context. GitHub:
96+
97+
1. Receives the event notification
98+
2. Searches the **default branch** for matching workflows
99+
3. Executes only workflows found on the default branch
100+
101+
This is different from push/PR events which can be configured to filter by branch.
102+
103+
### How to Verify Workflow is Accessible
104+
105+
```bash
106+
# Check develop
107+
git cat-file -e origin/develop:.github/workflows/project-automation.yml
108+
# Should succeed
109+
110+
# Check main (will fail until PR is merged)
111+
git cat-file -e origin/main:.github/workflows/project-automation.yml
112+
# Currently fails - this is the problem
113+
```
114+
115+
## SUMMARY
116+
117+
| Component | Status | Issue |
118+
|-----------|--------|-------|
119+
| Workflow file syntax | ✓ Valid YAML | None |
120+
| Workflow file permissions | ✓ Correct | None |
121+
| Secret GH_PROJECT_TOKEN | ✓ Configured | None |
122+
| File on develop branch | ✓ Yes | N/A |
123+
| File on main branch | ✗ No | **ROOT CAUSE** |
124+
| GitHub Actions enabled | ✓ Yes | None |
125+
126+
**Action Required**: Merge develop → main via PR to fix the issue.

0 commit comments

Comments
 (0)