name: backup to gitlab
on: [push]

concurrency:
  group: ${{ github.workflow }}
  cancel-in-progress: true

jobs:
  backup-to-gitlab:
    if: github.repository_owner == 'linuxdeepin'
    name: backup-to-gitlab
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          repository: "linuxdeepin/jenkins-bridge-client"
          path: jenkins-bridge-client

      - name: Install Client
        run: |
          cd $GITHUB_WORKSPACE/jenkins-bridge-client
          go build .
          sudo install -Dvm755 jenkins-bridge-client -t /usr/bin/
      - name: Trigger sync
        id: generate-runid
        run: |
          echo "::set-output name=RUN_ID::$(jenkins-bridge-client -triggerSync -token '${{ secrets.BRIDGETOKEN }}')"
      - name: Print log
        run: |
          jenkins-bridge-client -printlog -token "${{ secrets.BRIDGETOKEN }}" -runid "${{ steps.generate-runid.outputs.RUN_ID }}"

  backup-to-gitee:
    if: github.repository_owner == 'linuxdeepin'
    runs-on: ubuntu-latest
    steps:
      - name: create-repo
        run: |
          repo=${{ github.event.repository.name }}
          homepage="https://github.com/linuxdeepin/${repo}"
          description="mirror of ${homepage}"
          # remove '.' prefix
          repo=${repo#"."}
          curl -X POST --header 'Content-Type: application/json;charset=UTF-8' 'https://gitee.com/api/v5/enterprises/linuxdeepin/repos' -d '{"private": 1,"access_token":"${{ secrets.GITEE_SYNC_TOKEN }}","name":"'"$repo"'","description":"'"$description"'","homepage":"'"$homepage"'","has_issues":"false","has_wiki":"false","can_comment":"false"}' || true
      - name: push
        run: |
          git clone --bare https://github.com/linuxdeepin/${{ github.event.repository.name }}.git .git
          repo=${{ github.event.repository.name }}
          # remove '.' prefix
          repo=${repo#"."}
          git remote set-url origin https://myml:${{ secrets.GITEE_SYNC_TOKEN }}@gitee.com/linuxdeepin/${repo}.git
          git push -f --all --prune origin
          git push --tags origin
