trybot run for refs/changes/34/1196234/1 #4359
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Code generated internal/ci/ci_tool.cue; DO NOT EDIT. | |
name: Dispatch trybot | |
"on": | |
repository_dispatch: {} | |
push: | |
branches: | |
- ci/test | |
jobs: | |
trybot: | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash | |
if: ${{ ((github.ref == 'refs/heads/ci/test') && false) || github.event.client_payload.type == 'trybot' }} | |
steps: | |
- name: Write netrc file for cueckoo Gerrithub | |
run: |- | |
cat <<EOD > ~/.netrc | |
machine review.gerrithub.io | |
login cueckoo | |
password ${{ secrets.CUECKOO_GERRITHUB_PASSWORD }} | |
EOD | |
chmod 600 ~/.netrc | |
- id: payload | |
if: github.repository == 'cue-lang/cue' && (github.ref == 'refs/heads/ci/test') | |
name: Write fake payload | |
run: |- | |
cat <<EOD >> $GITHUB_OUTPUT | |
value<<DOE | |
null | |
DOE | |
EOD | |
- if: github.event.client_payload.type != 'trybot' | |
name: Trigger TryBot (fake data) | |
run: |- | |
mkdir tmpgit | |
cd tmpgit | |
git init -b initialbranch | |
git config user.name cueckoo | |
git config user.email cueckoo@gmail.com | |
git config http.https://github.com/.extraheader "AUTHORIZATION: basic $(echo -n cueckoo:${{ secrets.CUECKOO_GITHUB_PAT }} | base64)" | |
git remote add origin https://review.gerrithub.io/a/cue-lang/cue | |
git fetch origin ${{ fromJSON(steps.payload.outputs.value).ref }} | |
git checkout -b local_${{ fromJSON(steps.payload.outputs.value).targetBranch }} FETCH_HEAD | |
# Error if we already have dispatchTrailer according to git log logic. | |
# See earlier check for GitHub expression logic check. | |
x="$(git log -1 --pretty='%(trailers:key=Dispatch-Trailer,valueonly)')" | |
if [[ "$x" != "" ]] | |
then | |
echo "Ref ${{ fromJSON(steps.payload.outputs.value).ref }} already has a Dispatch-Trailer" | |
exit 1 | |
fi | |
# Add the trailer because we don't have it yet. GitHub expressions do not have a | |
# substitute or quote capability. So we do that in shell. We also strip out the | |
# indenting added by toJSON. We ensure that the type field is first in order | |
# that we can safely check for specific types of dispatch trailer. | |
# | |
# Use bash heredoc so that JSON's use of double quotes does | |
# not get interpreted as shell. | |
trailer="$(cat <<EOD | jq -r -c '{type} + .' | |
${{ toJSON(fromJSON(steps.payload.outputs.value)) }} | |
EOD | |
)" | |
git log -1 --format=%B | git interpret-trailers --trailer "Dispatch-Trailer: $trailer" | git commit --amend -F - | |
git log -1 | |
success=false | |
for try in {1..20}; do | |
echo "Push to trybot try $try" | |
if git push -f https://github.com/cue-lang/cue-trybot local_${{ fromJSON(steps.payload.outputs.value).targetBranch }}:${{ fromJSON(steps.payload.outputs.value).targetBranch }}; then | |
success=true | |
break | |
fi | |
sleep 1 | |
done | |
if ! $success; then | |
echo "Giving up" | |
exit 1 | |
fi | |
- if: github.event.client_payload.type == 'trybot' | |
name: Trigger TryBot (repository_dispatch payload) | |
run: |- | |
mkdir tmpgit | |
cd tmpgit | |
git init -b initialbranch | |
git config user.name cueckoo | |
git config user.email cueckoo@gmail.com | |
git config http.https://github.com/.extraheader "AUTHORIZATION: basic $(echo -n cueckoo:${{ secrets.CUECKOO_GITHUB_PAT }} | base64)" | |
git remote add origin https://review.gerrithub.io/a/cue-lang/cue | |
git fetch origin ${{ github.event.client_payload.ref }} | |
git checkout -b local_${{ github.event.client_payload.targetBranch }} FETCH_HEAD | |
# Error if we already have dispatchTrailer according to git log logic. | |
# See earlier check for GitHub expression logic check. | |
x="$(git log -1 --pretty='%(trailers:key=Dispatch-Trailer,valueonly)')" | |
if [[ "$x" != "" ]] | |
then | |
echo "Ref ${{ github.event.client_payload.ref }} already has a Dispatch-Trailer" | |
exit 1 | |
fi | |
# Add the trailer because we don't have it yet. GitHub expressions do not have a | |
# substitute or quote capability. So we do that in shell. We also strip out the | |
# indenting added by toJSON. We ensure that the type field is first in order | |
# that we can safely check for specific types of dispatch trailer. | |
# | |
# Use bash heredoc so that JSON's use of double quotes does | |
# not get interpreted as shell. | |
trailer="$(cat <<EOD | jq -r -c '{type} + .' | |
${{ toJSON(github.event.client_payload) }} | |
EOD | |
)" | |
git log -1 --format=%B | git interpret-trailers --trailer "Dispatch-Trailer: $trailer" | git commit --amend -F - | |
git log -1 | |
success=false | |
for try in {1..20}; do | |
echo "Push to trybot try $try" | |
if git push -f https://github.com/cue-lang/cue-trybot local_${{ github.event.client_payload.targetBranch }}:${{ github.event.client_payload.targetBranch }}; then | |
success=true | |
break | |
fi | |
sleep 1 | |
done | |
if ! $success; then | |
echo "Giving up" | |
exit 1 | |
fi |