Can't find 'action.yml', 'action.yaml' or 'Dockerfile'
  • 31-May-2023
Lightrun Team
Author Lightrun Team
Share
Can't find 'action.yml', 'action.yaml' or 'Dockerfile'

Can’t find ‘action.yml’, ‘action.yaml’ or ‘Dockerfile’ under ‘/data/workflow_dir/_actions/actions/checkout/v2.4.0’.

Lightrun Team
Lightrun Team
31-May-2023

Explanation of the problem

An issue has been encountered with Github Actions where they fail on the first attempt but succeed on the second attempt consistently. The problem manifests itself since yesterday without any apparent cause. When the actions run, an error message is displayed indicating the inability to find the required files ‘action.yml’, ‘action.yaml’, or ‘Dockerfile’ under the directory ‘/data/workflow_dir/_actions/actions/checkout/v2.4.0’. The error suggests that the necessary action, ‘actions/checkout’, might have been missed before executing the local action. Assistance is sought to resolve this issue.

The error message indicates that the specified files for the action cannot be located in the designated directory. It suggests the presence of ‘action.yml’, ‘action.yaml’, or ‘Dockerfile’ in the directory ‘/data/workflow_dir/_actions/actions/checkout/v2.4.0’. This situation often occurs when the prerequisite action ‘actions/checkout’ has not been executed prior to running the local action. It is essential to ensure that the required action is properly set up and executed to avoid this error.

 

Troubleshooting with the Lightrun Developer Observability Platform

Getting a sense of what’s actually happening inside a live application is a frustrating experience, one that relies mostly on querying and observing whatever logs were written during development.
Lightrun is a Developer Observability Platform, allowing developers to add telemetry to live applications in real-time, on-demand, and right from the IDE.

  • Instantly add logs to, set metrics in, and take snapshots of live applications
  • Insights delivered straight to your IDE or CLI
  • Works where you do: dev, QA, staging, CI/CD, and production

Start for free today

Problem solution for Can’t find ‘action.yml’, ‘action.yaml’ or ‘Dockerfile’ under ‘/data/workflow_dir/_actions/actions/checkout/v2.4.0’.

One user shared their experience and solution for the issue. They found that adding a specific configuration at the end of the action, particularly the checkout step, helped resolve the problem. By explicitly specifying the repository name with the owner using the ‘actions/checkout@v3’ action, they ensured that the post-run phase of the action remains connected to the running actions repository. This approach helped overcome the error and allowed the action to correctly reference its own repository. Although this solution seems to be a workaround, it served as a breakthrough for the user and may prove beneficial to others facing similar issues.

The problem of the ‘action.yml’ file not being found during GitHub Actions execution requires a deeper understanding of the underlying workflow setup and its interaction with reusable workflows. It is crucial to assess the implementation of the reusable workflow and ensure that it aligns with the supported features and limitations of GitHub Actions. Collaborative discussions in the GitHub Community can provide additional insights and potential solutions to address this specific issue. By leveraging the knowledge and experiences shared by the community, users can find effective strategies to resolve the problem and achieve successful execution of reusable workflows.

Other popular problems with Checkout

Problem: Personal Access Token (PAT) issues

One common problem with using the “actions/checkout@v2” action is that it requires a PAT to be passed as a parameter to access the repository. However, if the PAT passed as a parameter does not have the necessary permissions to access the repository, or if it is invalid or has been revoked, the action will fail with an error message similar to “fatal: could not read Username for ‘https://github.com‘: terminal prompts disabled”.

      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
          token: ${{ secrets.PAT }}

Solution:

To resolve this issue, you can check that the PAT passed as a parameter to the action has the necessary permissions to access the repository, and that it is still valid. Additionally, check that the PAT is associated with a GitHub account and that the account has the necessary permissions to access the repository.

Problem: Branch not found error

Another common problem with using the “actions/checkout@v2” action is that it may fail with an error message similar to “fatal: repository ‘https://github.com/OWNER/REPO.git/‘ not found” when trying to check out a specific branch.

      - name: Checkout
        uses: actions/checkout@v2
        with:
          repository: ${{github.repository}}
          ref: ${{ env.BRANCH_NAME }}

This issue can occur when the branch specified in the “ref” parameter of the action does not exist in the repository.

Solution:

To resolve this issue, you can check that the branch specified in the “ref” parameter exists in the repository, and that the repository URL is correct.

Problem: Incorrect repository URL

Another common problem with using the “actions/checkout@v2” action is that it may fail with an error message similar to “fatal: repository ‘https://github.com/OWNER/REPO.git/‘ not found” when the repository URL specified is incorrect.

      - name: Checkout
        uses: actions/checkout@v2
        with:
          repository: https://github.com/OWNER/REPO.git

Solution:

To resolve this issue, you can check that the repository URL specified in the action is correct. You can also use the parameter ${{github.repository}} that automatically gets the repository URL where the action is running.

It is important to keep in mind that “actions/checkout@v3” allows to use both, a token and a username, as input, which might help in some of the above issues.

A brief introduction to Checkout

Actions Checkout is a GitHub Action that allows developers to check out a specific repository, branch, or tag in their GitHub Actions workflow. This action is built on top of the Git command-line tool, and provides a simple and convenient way for developers to check out code within their workflow without having to manually run Git commands.

The Actions Checkout action can be used in a variety of use cases, such as continuous integration and continuous deployment workflows. By using this action, developers can easily check out the desired code, run tests, and deploy the code to a specific environment. Additionally, the action supports various parameters such as repository, ref, and token, which can be used to specify the repository URL, branch or tag, and Personal Access Token (PAT) for the repository, respectively.

Most popular use cases for Checkout

  1. Checking out a specific branch or tag in a repository: Actions Checkout can be used to check out a specific branch or tag in a repository within a GitHub Actions workflow. This can be useful for continuous integration and continuous deployment workflows, where the code needs to be checked out from a specific branch or tag before it is deployed to a specific environment.
      - name: Checkout
        uses: actions/checkout@v2
        with:
          repository: ${{github.repository}}
          ref: ${{ env.BRANCH_NAME }}
  1. Checking out a specific repository: Actions Checkout can also be used to check out a specific repository within a GitHub Actions workflow. This can be useful for workflows that need to check out code from a different repository than the one the action is running on.
      - name: Checkout
        uses: actions/checkout@v2
        with:
          repository: https://github.com/OWNER/REPO.git
  1. Automating Git operations in a workflow: Actions Checkout provides a simple and convenient way for developers to automate Git operations within their workflow without having to manually run Git commands. This can help to streamline the development process and improve the efficiency of the workflow.
      - name: Checkout
        uses: actions/checkout@v2
        with:
          fetch-depth: 0
          token: ${{ secrets.PAT }}

This can be particularly useful for workflows that involve multiple Git operations, such as fetching, pulling, or pushing code. With Actions Checkout, developers can automate these operations, reducing the need for manual intervention and minimizing the risk of errors.

Share

It’s Really not that Complicated.

You can actually understand what’s going on inside your live applications.

Try Lightrun’s Playground

Lets Talk!

Looking for more information about Lightrun and debugging?
We’d love to hear from you!
Drop us a line and we’ll get back to you shortly.

By submitting this form, I agree to Lightrun’s Privacy Policy and Terms of Use.