-
Notifications
You must be signed in to change notification settings - Fork 106
Teste de pull requests
Para realizar testes de pull requests enviados, uma série de scripts foram desenvolvidos para facilitar esse procedimento corriqueiro.
Testes não precisam de credenciais, e para evitar problemas outros, é melhor realizar os testes um em checkout exclusivo para isso:
mkdir phpdoc-prtests
cd phpdoc-prtests
git clone [email protected]:php/doc-base.git doc-base
git clone [email protected]:php/doc-en.git en
git clone [email protected]:php/doc-pt_br.git pt_BR
O procedimento é o seguinte, que utiliza os scripts abaixo:
-
Primeiro deve-se atualizar e conferir se o repositório oficial está compilando corretamente:
./conf.sh. -
Em caso de problemas de IDs inexistentes, o
find.shpode ajudar a procurar textos em todos os diretórios, original e traduções, assim como oopen.shajuda a abrir original e tradução simultaneamente a partir de um único caminho relativo. -
Se o gatinho aparecer, tudo está bem para realizar o teste do pull request. Para tanto, deve executar
./test.sh [pr-number]. -
Se o gatinho aparecer novamente, então o manual está compilando. Para enviar as alterações, realize o merge diretamente pela interface do GitHub e após isso rode um
./wipe.shpara restabelecer o repositório de testes ao seu estado original.
O fluxo, em grande resumo:
./conf.sh./test.sh [pr-number]./wipe.sh- Merge diretamente no GitHub
E é isso.
Atenção: O wipe.sh é extremamente agressivo. Ele descartará quaisquer alterações locais, para criar ou recriar um ambiente mais próximo do repositório no servidor.
(cd doc-base; git pull)
(cd en; git pull)
(cd pt_BR; git pull)
#php doc-base/scripts/revcheck.php pt_BR > revcheck.html
#xdg-open revcheck.html
php doc-base/configure.php --with-lang=pt_BR --enable-xml-details
(cd pt_BR; git status)
Observação: As linhas comentadas permitem a criação e exibição automática do revcheck.html em cada execução. Multo útil caso estejam trabalhando em uma estação desktop com interface gráfica.
grep -ri --exclude-dir={doc-base,.svn,.git} --color "$1" .
#!/bin/bash
linha=$1
linha=${linha/'phpdoc/'/''}
linha=${linha/'/trunk/'/'/'}
linha=${linha/'./'/''}
linha=${linha/'en/'/''}
linha=${linha/'pt_BR/'/''}
en="en/${linha}";
br="pt_BR/${linha}";
#echo $en;
#echo $br;
nohup gedit $en $br > /dev/null 2>&1 &
#atom $en $br
#!/bin/bash
if [[ $# -ne 1 ]]; then
echo "Usage: $0 [pr number]" >&2
exit 1
fi
#source wipe.sh
rm patch.txt
wget "https://patch-diff.githubusercontent.com/raw/php/doc-pt_br/pull/$1.diff" -O patch.txt
if ! $(cd pt_BR; git apply --check ../patch.txt); then
#(cd pt_BR; git apply --verbose --reject ../patch.txt;)
(cd pt_BR; git apply --verbose ../patch.txt;)
else
(cd pt_BR; git apply ../patch.txt 2>&1 | tee ../merge.txt;)
php doc-base/configure.php --with-lang=pt_BR --enable-xml-details
(cd pt_BR; git status)
(cd pt_BR; git diff)
echo
echo "If OK, accept the pull on GitHub and then "
echo " ./wipe.sh"
echo ""
fi
if [ $# -eq 0 ]
then msg='Update translation.';
else msg=$1;
fi
(cd pt_BR; git commit -a -m "\"$msg\"")
(cd pt_BR; git push)
(cd pt_BR; git status)
(cd pt_BR; git clean -f -d)
(cd pt_BR; git checkout .)
(cd pt_BR; git reset --hard )
(cd pt_BR; git pull --rebase )
(cd pt_BR; git rebase --skip )
(cd doc-base; git pull)
(cd en; git pull)
(cd pt_BR; git pull)
(cd pt_BR; git status)