Robots.txt | Failed to checkout tag: 'master'
Google Robots.txt Parser and Matcher Library をGitHub Actionsでdocker buildしていた際に以下のエラーになったので対処方法のメモです。
CMake Error at googletest-prefix/tmp/googletest-gitclone.cmake:75 (message):
Failed to checkout tag: 'master'
対処方法としては以下のコマンドをDockerfileに追記しておきます。
sed -i -e 21s/master/main/ CMakeLists.txt.in
調査内容
このようなISSUE もありました。branchのmasterがmainに変更になった影響のようです。ただ、各自で修正して対応しているようなので自分で対処することにします。
ざっくりリポジトリ内をmasterで検索するとCMakeLists.txt.inが見付かったので最初はファイル内のmasterを全てmainに置換しましたが、次は以下のエラーとなりました。
fatal: invalid reference: main
CMake Error at abseilcpp-prefix/tmp/abseilcpp-gitclone.cmake:75 (message):
Failed to checkout tag: 'main'
やりすぎだったようで、元々エラーが出ていた方だけ変更するため行番号も確認しておきます。
root@0802362ad642:~/robotstxt# cat -n CMakeLists.txt.in
1
2 PROJECT(dependency-downloader NONE)
3 CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
4
5 INCLUDE(ExternalProject)
6
7 ExternalProject_Add(abseilcpp
8 GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
9 GIT_TAG master
10 GIT_PROGRESS 1
11 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-src"
12 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-build"
13 CONFIGURE_COMMAND ""
14 BUILD_COMMAND ""
15 INSTALL_COMMAND ""
16 TEST_COMMAND ""
17 )
18
19 ExternalProject_Add(googletest
20 GIT_REPOSITORY https://github.com/google/googletest.git
21 GIT_TAG master
22 GIT_PROGRESS 1
23 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-src"
24 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-build"
25 CONFIGURE_COMMAND ""
26 BUILD_COMMAND ""
27 INSTALL_COMMAND ""
28 TEST_COMMAND ""
29 )
30
確認の上、最初のコマンドを試してみると以下のようになりました。
(21行目がmainに変わっています)
root@0802362ad642:~/robotstxt# cat -n CMakeLists.txt.in
1
2 PROJECT(dependency-downloader NONE)
3 CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
4
5 INCLUDE(ExternalProject)
6
7 ExternalProject_Add(abseilcpp
8 GIT_REPOSITORY https://github.com/abseil/abseil-cpp.git
9 GIT_TAG master
10 GIT_PROGRESS 1
11 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-src"
12 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/abseil-cpp-build"
13 CONFIGURE_COMMAND ""
14 BUILD_COMMAND ""
15 INSTALL_COMMAND ""
16 TEST_COMMAND ""
17 )
18
19 ExternalProject_Add(googletest
20 GIT_REPOSITORY https://github.com/google/googletest.git
21 GIT_TAG main
22 GIT_PROGRESS 1
23 SOURCE_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-src"
24 BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/libs/gtest-build"
25 CONFIGURE_COMMAND ""
26 BUILD_COMMAND ""
27 INSTALL_COMMAND ""
28 TEST_COMMAND ""
29 )
30
これでDockerfileを変更しておきます。
RUN set -x \
&& git clone https://github.com/google/robotstxt.git /usr/local/src/robotstxt \
&& sed -i -e 21s/master/main/ /usr/local/src/robotstxt/CMakeLists.txt.in \
&& mkdir /usr/local/src/robotstxt/c-build \
&& cd /usr/local/src/robotstxt/c-build \
&& cmake .. -DROBOTS_BUILD_TESTS=ON \
&& make \
&& make test \
&& :
pushしてGitHub Actionsの実行結果を見ると成功しました。