github / github/vscode-github-actions

Unable to find reusable workflow

Open
#254 23 comments 82 reactions 0 assignees View on GitHub
bug
Dominant language
TypeScript
Stars
660
Forks
213
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
When leveraging local reusable workflows, i.e. referencing other workflows inside of the `.github/workflows/` directory, the extension claims that it cannot find the reusable workflow. The reusable workflow is indeed in the right place, and it executes successfully by Github Actions.

**To Reproduce**
Steps to reproduce the behavior:
1. With the following directory structure:
```dir
.github/workflows/
- base.yml
- reusable.yml
```
And the following workflows:
```yml
# base.yml
name: base
on:
pull_request:

permissions:
contents: read
id-token: write

jobs:
reusable:
uses: ./.github/workflows/reusable.yml
with:
EXAMPEL: example
```
```yml
# reusable.yml
name: reusable
on:
workflow_call:
inputs:
EXAMPLE:
description: Example.
type: string
required: true

permissions:
contents: read
id-token: write

jobs:
reusable:
name: Example
runs-on: ubuntu-latest
steps:
- name: Example step
run: echo "${{ inputs.EXAMPLE }}"
```
2. Go to `base.yml` in VS Code.
3. The linting error `Unable to find reusable workflow` is presented. In addition, this is the output from `Github Actions Language`:
```
[Error - 09:26:39] Request textDocument/documentLink failed.
Message: Request textDocument/documentLink failed with message: Invalid file reference: .github/workflows/reusable.yml
Code: -32603
```

**Expected behavior**
As this is indeed a valid file reference according to [github documentation](https://docs.github.com/en/actions/using-workflows/reusing-workflows#calling-a-reusable-workflow), and since it does indeed execute successfully, this error should not occur.

**Screenshots**
![Screenshot 2023-09-01 at 09 39 51](https://github.com/github/vscode-github-actions/assets/11174653/860cbc0f-b501-47ea-9c87-63dbf94475f5)

**Extension Version**
`v0.26.1`

Contributor guide

Open the contributing guide

Research direction

Reproduce the failure in VS Code using base.yml and .github/workflows/reusable.yml, then inspect the documentLink request and the reusable-workflow reference handling. Confirm that the local path is accepted, the linting error disappears, and the document link resolves without an Invalid file reference error.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, typescript, vscode
Domain
ci-cd, tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.