- 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
のためにあなたのマニュアルを確認してくださいがあり、このための環境変数はありませんか?あなたが 'set home ='とbashを起動する前に適切な場所を指しているとどうなりますか? –
私は環境変数についてはわかりませんが、私が知る限り、そのようなディレクトリ構造は存在しません。私はそのコンテキスト内からC:\ドライブにアクセスする方法を知りたいだけです。誰もこれを見たことがありますか? –