GitHub Actions - How to build project in sub-directory

Evandro Pomatti picture Evandro Pomatti · Sep 5, 2019 · Viewed 7.3k times · Source

I'm using GitHub Actions to build my project but my Dart project is in a sub-directory in the repository. The Action script can't find my pubspec.yaml and get the dependencies.

How can I point my GitHub Action to look for the source code in a sub-directory within my repository?

. (root of my GitHub repository)
└── dart_project
    ├── pubspec.yaml   <-- Git Hub action must point to this sub-dir
└── node_project
    ├── packages.json

This is the error I am getting:

Could not find a file named "pubspec.yaml" in "/__w/<my_project_path>".
##[error]Process completed with exit code 66.

This is the dart.yml file auto-generated by GitHub.

name: Dart CI

on: [push]

jobs:
  build:

    runs-on: ubuntu-latest

    container:
      image:  google/dart:latest

    steps:
    - uses: actions/checkout@v1
    - name: Install dependencies
      run: pub get
    - name: Run tests
      run: pub run test

enter image description here

Answer

rmunn picture rmunn · Sep 5, 2019

If I understand your needs, you need the pub steps to run as if you'd done a cd dart_project first, right? Add the working-directory parameter to your steps:

steps:
- uses: actions/checkout@v1
- name: Install dependencies
  run: pub get
  working-directory: dart_project
- name: Run tests
  run: pub run test
  working-directory: dart_project

I believe that should be all you need.