github.com/0chain/gosdk@v1.17.11/.github/workflows/backup.yml (about)

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