2016-05-05 17 views
1
  • Windows Server 2012マシンでgitlabランナーを実行しています。
  • 私はwin-bashをインストールし、bash実行可能ファイルの場所をシステムパスに追加しました。
  • ランナーのconfig.tomlファイルをシェル用にbashを使用するように設定しました
  • ビルドプロセスの一部として実行する必要があるマシンにpythonスクリプトが保存されています。このスクリプトは、Windowsマシンに格納され、Cに位置しています:\パス\へ\ script.py
  • 私のビルドスクリプトの最初の行は、作業ディレクトリpwdと戻り、この出力します/home/gitlab-runner/builds/2b321e5b/0/Firmware/PSoC5LP

私の質問をこれは:どのようにC:\ドライブにアクセスできますか?gitlabランナーとbashをシェルとして使用してWindowsマシンのc:にアクセスする方法

私はWindowsマシン上で実行されている、および他の端末からのbashを起動する(CMD.EXE、PowerShellの、直接bash.exeを実行している)のですが、私はbashのを開始どこから標準的なWindowsのディレクトリ構造に私を置く:

Microsoft Windows [Version 6.2.9200] 
(c) 2012 Microsoft Corporation. All rights reserved. 

C:\Users\Administrator\Desktop>bash 
bash$ pwd 
C:/Users/Administrator/Desktop 
bash$ cd/
bash$ pwd 
C:/ 
bash$ cd /home 
bash: /home: No such file or directory 
bash$ ls 
$Recycle.Bin    ProgramData 
BOOTNXT     System Volume Information 
Documents and Settings  Users 
Miniconda2     Windows 
Multi-Runner    bootmgr 
PerfLogs     cygwin64 
Program Files    gitrepos 
Program Files (x86)  pagefile.sys 
bash$ 

いいえ/ home /、標準のLinuxディレクトリ構造ではありません。このため、絶対パスを介してファイルにアクセスすることができないため、私のビルドスクリプトは失敗します(ランナーのbashコンテキストで相対パスがどのように表示されるか分かりません)

ここでは関連する部分です

#!/bin/bash 

echo "build script executing" 

pwd 
echo "ls /" 
ls/

echo "***assembling the LyteByte asm files" 

# move to the LyteByteAssember directory 
cd ./LyteByteAssembler/ 

ASSEMBLY_FILE="LyteByteAssembly.lbasm" 
MERGE_FILE="merge.lbasm" 
OUTPUT_FILE="../BootloaderProj.cydsn/lytebyte_prog_mem_init.c" 
TEMP_DIR="./" 
PREPROCESSOR_DIRECTORY="c:/gitrepos/ArcherTools/LyteByteAsembler/LyteBytePreProcessor.py" 

echo $PREPROCESSOR_DIRECTORY $ASSEMBLY_FILE $MERGE_FILE $TEMP_DIR 
python "$PREPROCESSOR_DIRECTORY" "$ASSEMBLY_FILE" "$MERGE_FILE" "$TEMP_DIR" 

if [ $? -eq 0 ] 
then 
    echo "Preprocessing succeeded!" 
else 
    echo "Preprocessing failed, process cancelled" 
    exit 1 
fi 

、ここでは、ランナーからの出力例です:私のビルドスクリプトの

gitlab-ci-multi-runner 1.1.3 (a470667) 
Using Shell executor... 
Running on ip-172-31-7-232... 
Fetching changes... 
HEAD is now at d51e873 hjkj 
From https://thing.githost.io/Firmware/PSoC5LP 
    d51e873..d77e88b CI   -> origin/CI 
Checking out d77e88b0 as CI... 
Previous HEAD position was d51e873... hjkj 
HEAD is now at d77e88b... ;jkblkn .,/p 
$ bash ./build_script.sh 
build script executing 
/home/gitlab-runner/builds/2b321e5b/0/Firmware/PSoC5LP 
ls/
bin 
boot 
cgroup 
dev 
etc 
home 
lib 
lib64 
local 
lost+found 
media 
mnt 
opt 
proc 
root 
run 
sbin 
selinux 
srv 
sys 
tmp 
usr 
var 
***assembling the LyteByte asm files 
c:/gitrepos/ArcherTools/LyteByteAsembler/LyteBytePreProcessor.py LyteByteAssembly.lbasm merge.lbasm ./ 
python: can't open file 'c:/gitrepos/ArcherTools/LyteByteAsembler/LyteBytePreProcessor.py': [Errno 2] No such file or directory 
Preprocessing failed, process cancelled 
+0

のためにあなたのマニュアルを確認してくださいがあり、このための環境変数はありませんか?あなたが 'set home ='とbashを起動する前に適切な場所を指しているとどうなりますか? –

+0

私は環境変数についてはわかりませんが、私が知る限り、そのようなディレクトリ構造は存在しません。私はそのコンテキスト内からC:\ドライブにアクセスする方法を知りたいだけです。誰もこれを見たことがありますか? –

答えて

0

それはあなたがインストールしたソフトウェアによって異なります。

  • あなたがGitのバッシュを選択することで、Windows用のGitをインストールした場合、あなたはGitのBashのターミナルを開いて、Cを閲覧することができます:ドライブやD:実行してドライブ:

    CD/C/

    CDを/ C/Windowsの/

    CD/D/

  • あなたがCygwinをインストールしている場合は、あなたがしてきました:

    CD/cygdriveの/ C/

  • 勝利-bashの

関連する問題