master
1name: Mirror Repo to Tangled.org
2on:
3 workflow_dispatch:
4 push:
5 branches: [master]
6concurrency:
7 group: tangled-mirror
8 cancel-in-progress: true
9jobs:
10 tangled-mirror:
11 runs-on: ubuntu-latest
12 steps:
13 - uses: actions/checkout@v6
14 with:
15 fetch-depth: 0
16 persist-credentials: false
17 - name: Add Tangled Remote
18 env:
19 TANGLED_REPO_URL: git@tangled.org:karnwong.me/${{ github.event.repository.name }}
20 run: git remote add tangled $TANGLED_REPO_URL
21 - name: Decode SSH key
22 env:
23 TANGLED_SSH_KEY: ${{ secrets.TANGLED_SSH_KEY }}
24 run: |
25 echo $TANGLED_SSH_KEY | base64 --decode > "$RUNNER_TEMP/ssh.key"
26 chmod 600 "$RUNNER_TEMP/ssh.key"
27 - name: Setup SSH known_hosts
28 run: |
29 mkdir -p ~/.ssh
30 sudo ssh-keyscan -t rsa tangled.org >> ~/.ssh/known_hosts
31 sudo chmod 700 ~/.ssh
32 sudo chmod 644 ~/.ssh/known_hosts
33 sudo chown -R runner:runner ~/.ssh
34 - name: Push Repo to Mirror
35 run: |
36 eval `ssh-agent`
37 ssh-add "$RUNNER_TEMP/ssh.key"
38 git push --mirror --force tangled
39 - name: Cleanup
40 run: rm "$RUNNER_TEMP/ssh.key"