I am trying to write a GitHub action that makes a copy of a file in my repo into a different subdir in the repo. This is my dir structure (before the file is copied)
my_project
|_ .github
| |_ workflows
| |_ run_tests.yml
| |_ copy_file.yml
|_ tests
| |_ testthat
| |_ test1.R
| |_ test2.R
|_ my_file.json
|_ copyfile.sh
This is what I want my file structure to be after the file is copied
my_project
|_ .github
| |_ workflows
| |_ run_tests.yml
| |_ copy_file.yml
|_ tests
| |_ testthat
| | |_ test1.R
| | |_ test2.R
| |_ copy_of_my_file.json
|_ my_file.json
|_ copyfile.sh
So basically, my GitHub action should make a copy of my_file.json named copy_of_my_file.json and place it inside the tests sub dir. I've built a bash script with the following
#!/bin/bash
cp my_file.json tests/copy_of_my_file.json
Locally, I run chmod u+x copyfile.sh and then bash copyfile.sh and the file is indeed copied. My copy_file.yml workflow is as follows:
name: Copy my_file.json to tests subdirectory
on: [push, pull_request, workflow_dispatch]
jobs:
run:
runs-on: [ubuntu-latest]
steps:
- name: Checkout ️
uses: actions/checkout@v2
- name: Make copy of my_file.json
run: |
chmod u+x "${GITHUB_WORKSPACE}/copyfile.sh"
bash "${GITHUB_WORKSPACE}/copyfile.sh"
The action runs with no errors, but the file doesn't get copied. I tried other actions from the GitHub Marketplace with no luck. I also tried changing the action's run to simply cp my_file.json tests/copy_of_my_file.json but it doesn't work either.