90 lines
3.7 KiB
YAML
90 lines
3.7 KiB
YAML
name: build-develop-branch
|
|
run-name: ${{ github.actor }} is learning GitHub Actions
|
|
on:
|
|
push:
|
|
branches:
|
|
- 'develop/**'
|
|
jobs:
|
|
build-branch:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# https://github.com/RouxAntoine/checkout/tree/v3.5.4
|
|
- uses: http://sigyl.com:3000/actions/checkout@v3.5.4
|
|
with:
|
|
token: ${{ secrets.BOT_TOKEN }}
|
|
fetch-depth: '10'
|
|
- env: env
|
|
run: printenv
|
|
name: get tea
|
|
run: |
|
|
curl https://dl.gitea.com/tea/0.9.2/tea-0.9.2-linux-386 --output ../tea
|
|
chmod +x ./tea
|
|
./tea login add -n=this --url=${{ github.server_url}} -t=${{ secrets.BOT_TOKEN }}
|
|
- uses: http://sigyl.com:3000/actions/setup-node@v3
|
|
with:
|
|
node-version: '20'
|
|
- uses: http://sigyl.com:3000/actions/batch2yaml@master
|
|
with:
|
|
action: xml
|
|
path: '.'
|
|
- run: git fetch
|
|
- name: config
|
|
run: |
|
|
git config --global user.name "${{ github.actor }}"
|
|
git config --global user.email "${{ github.event.pusher.email }}"
|
|
- name: get build branch name
|
|
run: |
|
|
firstString=${{ github.ref_name }}
|
|
secondString="build"
|
|
echo ::set-env name=BUILD_BRANCH::${firstString/develop\//"$secondString"\/}
|
|
- name: status
|
|
run: |
|
|
ls
|
|
- name: push
|
|
run: |
|
|
git add -A
|
|
git commit -a -m "${{ github.ref_name }} -> ${{ env.BUILD_BRANCH }} "
|
|
if [[ $(git branch -r | grep -Fx " origin/${{ env.BUILD_BRANCH }}" | wc -c) -eq 0 ]]; then
|
|
git push origin HEAD:${{ env.BUILD_BRANCH }};
|
|
else
|
|
if [[ $(git diff origin/${{ env.BUILD_BRANCH }} | wc -c) -ne 0 ]]; then
|
|
#git rebase -Xtheirs origin/${{ env.BUILD_BRANCH }}
|
|
git clone ${{ github.serverUrl }}/${{ github.repository }} ../cloned
|
|
git -C ../cloned fetch origin #--depth=1
|
|
git -C ../cloned checkout $BUILD_BRANCH || git -C ../cloned checkout -b $BUILD_BRANCH
|
|
mv ../cloned/.git ..
|
|
rm -rf ../cloned
|
|
cp -r . ../cloned
|
|
rm -rf ../cloned/.git
|
|
mv ../.git ../cloned
|
|
mv .git/config ../cloned/.git
|
|
rm -r ./*
|
|
rm -r .git
|
|
mv ../cloned/* .
|
|
mv ../cloned/.git .
|
|
git add -A
|
|
git commit -a -m "${{ github.ref_name }} -> ${{ env.BUILD_BRANCH }} "
|
|
git push origin HEAD:${{ env.BUILD_BRANCH }}
|
|
else
|
|
echo 'no changes so no push'
|
|
fi;
|
|
fi;
|
|
- name: make PR
|
|
run: |
|
|
../tea login add -n=this --url=${{ github.server_url}} -t=${{ secrets.BOT_TOKEN }}
|
|
../tea pr ls -f=base,head -o=csv
|
|
if [[ $(./tea pr ls -f=base,head -o=csv | grep "\"master\",\"${{ github.ref_name }}\"" | head -c1 | wc -c) -eq 0 ]]; then
|
|
./tea pr c --base=master --head=${{ github.ref_name }} --description="
|
|
development pull request
|
|
this PR is will been built on [${{ github.ref_name }}](${{ github.serverUrl }}/${{ github.repository }}/src/branch/${{ env.BUILD_BRANCH }})
|
|
" -t="WIP: ${{ github.event.head_commit.message }}"
|
|
fi
|
|
- name: get PR number
|
|
run: |
|
|
pr=$(../tea pr ls -f=base,head,index -o csv | grep "\"master\",\"${{ github.ref_name }}\"" | tr -d ' ' | tr "," "\n" | head -n 4 | tail -1)
|
|
export PR="${pr//[\"\'\`]/}"
|
|
echo ::set-env name=PR::$PR
|
|
- name: make pull request comment
|
|
run: |
|
|
../tea c $PR "this branch has been built on [${{ env.BUILD_BRANCH }}](${{ github.serverUrl }}/${{ github.repository }}/src/branch/${{ env.BUILD_BRANCH }})"
|
|
|