forked from pub-solar/os
feat/upstreaming (#4)
Co-authored-by: Benjamin Bädorf <hello@benjaminbaedorf.eu> Co-authored-by: teutat3s <teutates@mailbox.org> Reviewed-on: https://git.b12f.io/pub-solar/os/pulls/4 Co-authored-by: Benjamin Bädorf <b12f@noreply.example.org> Co-committed-by: Benjamin Bädorf <b12f@noreply.example.org>
This commit is contained in:
parent
fccbc349bd
commit
a9e304617b
96
.drone.yml
96
.drone.yml
|
@ -1,23 +1,91 @@
|
|||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: api
|
||||
name: Upstreaming
|
||||
|
||||
steps:
|
||||
- name: "Sync upstream and try PR"
|
||||
image: docker.b12f.io/pub-solar/minimal-git:latest
|
||||
settings:
|
||||
registry: docker.b12f.io
|
||||
repo: docker.b12f.io/pub-solar/minimal-git
|
||||
username:
|
||||
from_secret: docker_username
|
||||
password:
|
||||
from_secret: docker_password
|
||||
- name: "Sync upstream to local"
|
||||
image: alpine/git
|
||||
when:
|
||||
event:
|
||||
- cron
|
||||
- promote
|
||||
target:
|
||||
- upstream
|
||||
branch:
|
||||
- core
|
||||
environment:
|
||||
GITEA_SSH_KEY:
|
||||
from_secret: gitea_ssh_key
|
||||
commands:
|
||||
- echo $GITEA_SSH_KEY > ~/.ssh/id_rsa
|
||||
- git clone -b core git@git.b12f.io:pub-solar/os
|
||||
- git remote add devos https://github.com/divnix/devos.git
|
||||
- ./.drone/setup_ssh.sh
|
||||
- git fetch
|
||||
- git checkout devos
|
||||
- git remote add devos git@git.b12f.io:pub-solar/devos
|
||||
- git remote set-url origin git@git.b12f.io:pub-solar/os
|
||||
- git fetch --all
|
||||
- git rebase devos/core
|
||||
- git merge -X theirs devos/core
|
||||
- git push origin devos
|
||||
|
||||
- name: "Sync branch with upstream"
|
||||
image: alpine/git
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
event:
|
||||
- cron
|
||||
- promote
|
||||
target:
|
||||
- upstream
|
||||
environment:
|
||||
GITEA_SSH_KEY:
|
||||
from_secret: gitea_ssh_key
|
||||
commands:
|
||||
- ./.drone/setup_ssh.sh
|
||||
- git remote set-url origin git@git.b12f.io:pub-solar/os
|
||||
- ./.drone/upstream-branch.sh
|
||||
|
||||
- name: "Open pull request for failed merge"
|
||||
image: nixery.dev/shell/tea
|
||||
when:
|
||||
status:
|
||||
- failure
|
||||
event:
|
||||
- cron
|
||||
- promote
|
||||
target:
|
||||
- upstream
|
||||
branch:
|
||||
- core
|
||||
environment:
|
||||
TEA_CONFIG:
|
||||
from_secret: tea_config
|
||||
commands:
|
||||
- mkdir -p ~/.config/tea
|
||||
- echo "$$TEA_CONFIG" > ~/.config/tea/config.yml
|
||||
- tea pulls create --base core --head devos
|
||||
|
||||
- name: "Notify matrix"
|
||||
image: plugins/matrix
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
event:
|
||||
- cron
|
||||
- promote
|
||||
target:
|
||||
- upstream
|
||||
settings:
|
||||
homeserver: https://matrix.pub.solar
|
||||
roomid: dfQBqwkhIzrFjMSsxy:pub.solar
|
||||
username:
|
||||
from_secret: matrix_username
|
||||
password:
|
||||
from_secret: matrix_password
|
||||
template: "Upstreaming {{ build.status }} [{{ build.branch }}#{{ truncate build.commit 8 }}]({{ build.link }}) by {{ build.author }}. [Pull requests](https://git.b12f.io/pub-solar/os/pulls)"
|
||||
---
|
||||
kind: signature
|
||||
hmac: b7ad6e3b722b175ffdffd610784fbaf8d675278a64c7e3c62dc5a05b8ae3e2ad
|
||||
|
||||
...
|
||||
|
|
11
.drone/setup_ssh.sh
Executable file
11
.drone/setup_ssh.sh
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
set -e
|
||||
|
||||
# Setup ssh inside container
|
||||
mkdir -p ~/.ssh
|
||||
echo "$GITEA_SSH_KEY" > ~/.ssh/id_rsa
|
||||
echo "[git.b12f.io]:2222 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJ4uaREL7acSSCNAX+voDYl1Kj7JipP62fR5x1UyGP9u" >> ~/.ssh/known_hosts
|
||||
echo "Host git.b12f.io" >> ~/.ssh/config
|
||||
echo " Port 2222" >> ~/.ssh/config
|
||||
chmod -R 600 ~/.ssh
|
12
.drone/upstream-branch.sh
Executable file
12
.drone/upstream-branch.sh
Executable file
|
@ -0,0 +1,12 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
set -e
|
||||
set -u
|
||||
|
||||
LOCAL="$DRONE_BRANCH"
|
||||
[ "$LOCAL" = "core" ] && UPSTREAM=origin/devos || UPSTREAM=origin/core
|
||||
|
||||
git fetch --all
|
||||
git checkout "$LOCAL"
|
||||
git merge "$UPSTREAM"
|
||||
git push origin "$LOCAL"
|
Loading…
Reference in a new issue