Skip to content

Backup: SSH Security Improvements #21

Backup: SSH Security Improvements

Backup: SSH Security Improvements #21

name: Sync repository to mirrors
on:
push:
tags-ignore:
- '*'
branches:
- '*'
jobs:
bitbucket:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -t rsa bitbucket.org > ~/.ssh/known_hosts
- name: Sync up to Bitbucket
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: '[email protected]:the_archival_one/brs-psp-research-initiative.git'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ~/.ssh/known_hosts
codeberg:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -t rsa codeberg.org > ~/.ssh/known_hosts
- name: Sync up to Codeberg
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: '[email protected]:thearchivalone/BRS-PSP-Research-Initiative.git'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ~/.ssh/known_hosts
beanstalk:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
echo "${{ secrets.BEANSTALK_KNOWN_HOSTS }}" > ~/.ssh/known_hosts
- name: Sync up to Beanstalk
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: '[email protected]:/the-archival-one/brs-psp-research-initiative.git'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ${{ secrets.BEANSTALK_KNOWN_HOSTS }}
gitgud:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -t rsa gitgud.io > ~/.ssh/known_hosts
- name: Sync up to GitGud
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: '[email protected]:thearchivalone/brs-psp-research-initiative.git'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ~/.ssh/known_hosts
gitlab:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -t rsa gitlab.com > ~/.ssh/known_hosts
- name: Sync up to GitLab
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: '[email protected]:thearchivalone1/BRS-PSP-Research-Initiative.git'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ~/.ssh/known_hosts
sourceforge:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup secure connection
id: secure
run: |
env
mkdir -p ~/.ssh
echo "${{ secrets.SSH_KEY_PRIVATE }}" > ~/.ssh/id_ed25519
chmod 600 ~/.ssh/id_ed25519
ssh-keyscan -t rsa sourceforge.net > ~/.ssh/known_hosts
- name: Sync up to Sourceforge
id: sync
uses: yesolutions/mirror-action@master
with:
REMOTE: 'ssh://[email protected]/p/brs-psp-research-initiative-1/code'
GIT_SSH_PRIVATE_KEY: ${{ secrets.SSH_KEY_PRIVATE }}
GIT_SSH_KNOWN_HOSTS: ~/.ssh/known_hosts
archive:
runs-on: ubuntu-24.04
steps:
- name: Checkout repository
id: checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Compress Repository
id: compress
run:
git archive --format=tar.gz -o Backup.tar.gz --prefix=$(basename $PWD)/ main
- name: Sync up to Internet Archive
id: ia_sync
uses: qoijjj/internet-archive-upload@v7
with:
access-key: ${{ secrets.IA_ACCESS_KEY }}
secret-key: ${{ secrets.IA_SECRET_KEY }}
identifier: BRS-Research-Initiative-Current
files: Backup.tar.gz