如何制作 Concourse Linux 机读可执行文件? (chmod 样式)

How do you make a Concourse Linux Machine read executable files? (chmod style)

我正在尝试将我的 Concourse CI Linux VM 转换为 运行 shell 脚本。但我不断收到同样的错误:

我在本地(非 VM,在 Mac 上)用 chmod +x path/filename.sh 修复了这个问题以使其可执行并将 !#/bin/sh 添加到 shell 脚本中。

但我不知道如何让 Concourse/VM 知道它是一个可执行文件?有没有我应该放入 task.sh 的 chmod 命令?还是 task.yml?求助!

我的大厅CIpipeline.yml

resources:
- name: my-git-repo
  type: git
  source:
    uri: git@github.com:org-name/my-git-repo.git
    branch: master
    private_key: {{git-private-key}}
- name: my-task
  type: git
  source:
    uri: git@gist.github.com: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

我的task.yml:

---
platform: linux

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

inputs:
- name: my-task

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

我的task.sh:

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

我预计这只是 echo/log 上面的字符串。

相反,我在顶部收到 500/permission denied 错误。

git 存储库中的文件必须 chmod +xed。你将很难在 Gist 中做到这一点,因为无法在 UI.

中设置

您可以克隆要点,chmod +x,然后重新推送,或者将您的任务改为 运行 bash my-task/task.sh,这不需要它是可执行的:

run:
  path: bash
  args: [./my-task/task.sh]