-1

I am hosting a self-hosted runner, using python to automate some Unity tests. I have set up a .env file for local variables so eventually I can deploy the runner and the scripts onto any computer. However I am having an issue when I am triggering the script via GitHub Actions. If I use the terminal myself on my own machine, it runs just fine.

My question is, is there way to elevate the permissions of a runner, or am I missing a step?

The error in the Actions tab is

##[debug]Result: '$SELF_HOSTED_UNITY_TEST_SCRIPT {branch_name}'
##[debug]Loading env
Run $SELF_HOSTED_UNITY_TEST_SCRIPT pythonmacos
  $SELF_HOSTED_UNITY_TEST_SCRIPT pythonmacos
  shell: /bin/bash -e {0}
##[debug]/bin/bash -e {user_path}/actions-runner/_work/_temp/129fb3d0-cb43-49b5-b558-9f36543c0193.sh
{user_path}/actions-runner/_work/_temp/129fb3d0-cb43-49b5-b558-9f36543c0193.sh: line 1: {user_path}/dev-tools/test-runner/GithubActions/RunTests.py: Permission denied
Error: Process completed with exit code 1.
##[debug]Finishing: Mac - Run testing script

The first few lines in the python script:

if __name__ == '__main__':
    load_dotenv(find_dotenv())
    git_project_path = os.environ.get("GIT_PROJECT_PATH")

    parser = init_argparse()
    args = parser.parse_args()
    branch_name = args.branch_name[0]
    if not branch_name:
        exit(2)

The workflow script:

name: Testing on Self Hosted Runner
run-name: ${{ github.actor }} is running a test on a self hosted runner on branch ${{ github.head_ref }}.
on: pull_request

jobs:
  Create:
    runs-on: self-hosted
    steps:
      - name: Mac - Setup alias
        if: runner.os == 'macOS'
        run: |
          shopt -s expand_aliases

      - name: Mac - Run testing script
        if: runner.os == 'macOS'
        run: $SELF_HOSTED_UNITY_TEST_SCRIPT ${{ github.head_ref }}

I have the following imports in my RunTests.py script:

import argparse
import os
import subprocess
from os.path import join, dirname
from xml.etree import ElementTree

import git
from dotenv import load_dotenv, find_dotenv
from termcolor import cprint

1 Answer 1

0

I forgot that file permissions are a thing. Allowing the file to be executed using chmod -x {pythonScript.py} makes it work.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.