Как заставить машину Concourse Linux читать исполняемые файлы? (стиль chmod)

Я пытаюсь заставить свою виртуальную машину Concourse CI Linux запускать сценарий оболочки. Но я продолжаю получать ту же ошибку:

введите здесь описание изображения

Я исправил это локально (не на виртуальной машине, на Mac) с помощью chmod +x path/filename.sh, чтобы сделать его исполняемым, и добавив !#/bin/sh в сценарий оболочки.

Но я не знаю, как заставить Concourse/VM узнать, что это исполняемый файл? Есть ли команда chmod, которую я должен добавить в task.sh? или task.yml? Помощь!

мой зал CI pipeline.yml

resources:
- name: my-git-repo
  type: git
  source:
    uri: [email protected]:org-name/my-git-repo.git
    branch: master
    private_key: {{git-private-key}}
- name: my-task
  type: git
  source:
    uri: [email protected]:blahblahblah12345678910blah.git
    private_key: {{git-private-key}}

jobs:
- name: job-build-app
  plan:
  - get: my-git-repo
    trigger: true
  - get: task
  - task: run-build
    file: my-task/task.yml

My task.yml:

---
platform: linux

image_resource:
  type: docker-image
  source: {repository: busybox}

inputs:
- name: my-task

run:
  path: ./my-task/task.sh

My task.sh:

!#/bin/sh
echo this is my task shell script 

Я ожидал, что это просто выведет/выведет строку выше.

Вместо этого я получаю ошибку 500/отказ в доступе вверху.


person Aid    schedule 05.12.2017    source источник


Ответы (1)


Файл в репозитории git должен быть chmod +xed. Вам будет трудно сделать это в Gist, так как это нельзя установить в пользовательском интерфейсе.

Вы можете клонировать суть, chmod +x и повторно отправить или изменить свою задачу, чтобы вместо этого запускать bash my-task/task.sh, что не требует, чтобы она была исполняемой:

run:
  path: bash
  args: [./my-task/task.sh]
person Alex Suraci    schedule 05.12.2017
comment
Спасибо @alexsuraci, да, в итоге я исправил, клонировав суть, добавив новый файл локально, chmod'ировав его, а затем отправив его. Сразу заработал. - person Aid; 06.12.2017
comment
Вы также можете использовать git update-index --chmod=+x task.sh для изменения состояния chmod или автоматизировать это, как описано в этом ответе. - person Fabian Keller; 06.12.2017