name: build
on:
  - push
  - pull_request
jobs:
  build:
    container:
      image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:golang-ubuntu-latest
    steps:
      - name: Check out repository code
        uses: https://gitea.com/BoYanZh/checkout@focs
      - name: Display Go version
        run: go version
      - name: Prepare
        run: |
          go env -w GO111MODULE=on
          go env -w GOPROXY=https://goproxy.cn,direct
          mkdir -p ~/.ssh
          echo "${{ secrets.DEPLOY_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
          echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519.pub
          chmod 600 ~/.ssh/id_ed25519
          chmod 600 ~/.ssh/id_ed25519.pub
          ssh-keyscan -p 2222 focs.ji.sjtu.edu.cn >> ~/.ssh/known_hosts
          ssh -T git@focs.ji.sjtu.edu.cn -p 2222
        # - name: Lint
        #   run: make lint
      - name: Build
        run: make build
      - name: Version
        run: ./build/joj3 -version
      - name: Test
        run: |
          make prepare-test
          make ci-test
  trigger-build-image:
    container:
      image: focs.ji.sjtu.edu.cn:5000/gitea/runner-images:ubuntu-latest
    needs: build
    if: github.ref == 'refs/heads/master'
    steps:
      - name: Set up SSH
        run: |
          mkdir -p ~/.ssh
          echo "${{ secrets.DEPLOY_PRIVATE_KEY }}" > ~/.ssh/id_ed25519
          echo "${{ secrets.DEPLOY_KEY }}" > ~/.ssh/id_ed25519.pub
          chmod 600 ~/.ssh/id_ed25519
          chmod 600 ~/.ssh/id_ed25519.pub
          ssh-keyscan -p 2222 focs.ji.sjtu.edu.cn >> ~/.ssh/known_hosts
          ssh -T git@focs.ji.sjtu.edu.cn -p 2222
      - name: Set up Git
        run: |
          git config --global user.name "bot-joj"
          git config --global user.email "bot-joj@focs.ji.sjtu.edu.cn"
      - name: Clone, Commit and Push
        shell: bash
        run: |
          git clone ssh://git@focs.ji.sjtu.edu.cn:2222/JOJ/runner-images.git runner-images
          cd runner-images
          git submodule update --init --remote --force
          git add -A
          if echo "${{ github.event.head_commit.message }}" | grep -q "force build"; then
            git commit --allow-empty -m "chore: ${{ github.repository }}@${{ github.sha }} trigger force build gitea actions"
          else
            git commit --allow-empty -m "chore: ${{ github.repository }}@${{ github.sha }} trigger build gitea actions"
          fi
          git push