Контекст: я портирую серверное программное обеспечение с открытым исходным кодом (и пишу соответствующую документацию) с Debian / Ubuntu на CentOS / RHEL.
Чтобы программное обеспечение работало правильно, я необходимо добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet
).
С точки зрения Debian, я знаю, что могу переопределить my.cnf MySQL, добавив файл в ] /etc/mysql.d
, скажем /etc/mysql.d/my-software.cnf
.
Мой вопрос : как сделать то же самое правильно на CentOS / RHEL?
Другая информация:
Для правильной работы программного обеспечения мне нужно добавить дюжину конкретных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet
).
С точки зрения Debian, я знал, что могу переопределить my.cnf в Mysql, добавив файл в /etc/mysql.d
, скажем / etc / mysql.d / my-software.cnf
.
Мой вопрос: : как сделать то же самое правильно в CentOS / RHEL?
Другая информация:
Для правильной работы программного обеспечения мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet
).
С точки зрения Debian, я знал, что могу переопределить my.cnf Mysql, добавив файл в /etc/mysql.d
, скажем / etc / mysql.d / my-software.cnf
.
Мой вопрос: : как сделать то же самое правильно в CentOS / RHEL?
Другая информация:
Чтобы программа работала правильно, мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet
).
С точки зрения Debian, я знал, что могу переопределить My.cnf от mysql, добавив файл в /etc/mysql.d
, скажем /etc/mysql.d/my-software.cnf
.
Мой вопрос: ]: как сделать то же самое в CentOS / RHEL?
Другая информация:
Чтобы программа работала правильно, мне нужно добавить дюжину определенных параметров в конфигурацию Mysql (пример: увеличить max_allowed_packet
).
С точки зрения Debian, я знал, что могу переопределить My.cnf от mysql, добавив файл в /etc/mysql.d
, скажем /etc/mysql.d/my-software.cnf
.
Мой вопрос: ]: как сделать то же самое в CentOS / RHEL?
Другая информация:
/etc/mysql.d
, скажем /etc/mysql.d/my-software.cnf
.
Мой вопрос : как чтобы сделать то же самое правильно в CentOS / RHEL?
Другая информация:
/etc/mysql.d
, скажем /etc/mysql.d/my-software.cnf
.
Мой вопрос : как чтобы сделать то же самое правильно в CentOS / RHEL?
Другая информация:
Я использую Jenkins с плагином GitHub Pull Request Builder . Затем я настроил веб-перехватчики из GitHub, чтобы запускать сборку в jenkins при открытии или фиксации нового запроса на слияние.
Я настроил подключаемый модуль GHPRB с Jenkins DSL:
job("name") {
properties {
githubProjectUrl("https://github.com/org/${repo}")
}
scm {
git {
remote {
name("origin")
url("git@github.com:org/${repo}.git")
credentials("jenkins-ssh-keyid")
}
branch("**")
extensions {
gitTagMessageExtension()
}
}
}
triggers {
githubPullRequest{
admins(["github-username"])
orgWhitelist('org-name')
cron("")
triggerPhrase("build")
extensions {
commitStatus {
context("unittest")
}
}
useGitHubHooks()
}
}
steps {
shell("./run-unittests");
}
}
Проблема, с которой я сталкиваюсь, заключается в том, что иногда Дженкинс запутывается и выбирает неправильный коммит для развития.
Когда это происходит, вывод Дженкинса выглядит следующим образом:
GitHub pull request #9 of commit 126434b, no merge conflicts.
Setting status of 126434b to PENDING with url http://jenkins/job/unittest/26/ and message: 'Build started sha1 is merged.'
Using context: unittest
> git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
> git config remote.origin.url git@github.com:org/repo.git # timeout=10
Fetching upstream changes from git@github.com:org/repo.git
> git --version # timeout=10
using GIT_SSH to set credentials
> git -c core.askpass=true fetch --tags --progress git@github.com:org/repo.git +refs/heads/*:refs/remotes/origin/*
Seen branch in repository origin/feature-branch-0
Seen branch in repository origin/feature-branch-1
Seen branch in repository origin/feature-branch-2
Seen 3 remote branches
Checking out Revision 1995d66 (origin/master)
Здесь Дженкинс переходит от использования кончика ветки функций ( 126434b
) к использованию кончика мастера ( 1995d66
) вместо этого.
> git config core.sparsecheckout # timeout=10
> git checkout -f 1995d66
> git rev-list ba7ec55 # timeout=10
> git describe --tags 126434b # timeout=10
Tag information could not be determined for this revision; no git tag info will be exported
Обратите внимание, что когда подключаемый модуль сообщений тегов Git запускает git describe
для проверки информации тегов, он использует идентификатор фиксации для ветки функции.
Затем Дженкинс продолжает работу, работая над основной подсказкой ( 1995d66
), вместо подсказки ветки функции ( 126434b
), как ожидалось.
Проблема заключалась в спецификации branch
и refspec
. Изменение секции задания scm.git
на эту, решило проблему проверки Дженкинса на неправильный коммит:
scm {
git {
remote {
name("origin")
url("git@github.com:org/${repo}.git")
credentials("jenkins-ssh-keyid")
refspec('+refs/pull/*:refs/remotes/origin/pr/*')
}
branch('${ghprbActualCommit}')
}
}
}
На случай, если у кого-то еще возникнет эта проблема по тем же причинам, что и у нас!
Это может произойти, если ваш кеш поврежден. Найдите папку «cache» под вашим Jenkins и удалите все папки git внутри нее. (Сначала, конечно, выключите Дженкинса).