-
Notifications
You must be signed in to change notification settings - Fork 16
53 lines (45 loc) · 1.96 KB
/
backup.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
name: Mirror repo to S3
on:
schedule:
# Runs everyday at 2:40 am
- cron: '40 2 * * * '
workflow_dispatch:
jobs:
s3Backup:
runs-on: arc-runner
steps:
- uses: actions/checkout@v3
- name: Get info
id: get_info
run: |
GIT_COMMIT_DATE="$((`git log -n 1 --date-order --all | grep Date | awk '{ print $4 }'`))"
YESTERDAY_DATE="$((`date | awk '{ print $3 }'`-1))"
echo ::set-output name=GIT_COMMIT_DATE::${GIT_COMMIT_DATE}
echo ::set-output name=YESTERDAY_DATE::${YESTERDAY_DATE}
echo $GIT_COMMIT_DATE
echo $YESTERDAY_DATE
- name: Create backup
if: steps.get_info.outputs.GIT_COMMIT_DATE == steps.get_info.outputs.YESTERDAY_DATE
run: |
sudo apt update && sudo apt install python3-pip -y
sudo pip3 install github-backup
sudo github-backup -O 0chain -P -t ${{ secrets.ACCESS_TOKEN }} --output-directory=/github-backup/zwalletcli --all -O -R zwalletcli
- name: Create zip
if: steps.get_info.outputs.GIT_COMMIT_DATE == steps.get_info.outputs.YESTERDAY_DATE
run: sudo zip -r zwalletcli.zip /github-backup/zwalletcli
- name: Install AWS
run: |
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- name: Set AWS credentials
if: steps.get_info.outputs.GIT_COMMIT_DATE == steps.get_info.outputs.YESTERDAY_DATE
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.S3_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.S3_SECRET_KEY }}
aws-region: us-east-2
- name: Backup to s3
if: steps.get_info.outputs.GIT_COMMIT_DATE == steps.get_info.outputs.YESTERDAY_DATE
run: |
aws s3 cp zwalletcli.zip s3://${{ secrets.MIRROR_TARGET }}/zwalletcli.zip