# Copyright 2020 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# Creates a PR to update TF & LLVM submodules when TF moves to a new LLVM commit.

name: Update Submodules

on:
  schedule:
     # Every weekday at 14:00 UTC (06:00 PST/07:00 PDT)
     - cron: '0 14 * * 1-5'

jobs:
  update:
    # Don't run this in everyone's forks.
    if: github.repository == 'google/iree'
    runs-on: ubuntu-18.04
    steps:
      - name: Checking out repository
        uses: actions/checkout@v2
      - name: Initializing submodules
        run: ./scripts/git/submodule_versions.py init
      - name: Updating submodules
        run: ./scripts/git/update_tf_llvm_submodules.py --update_build_files=true
      - name: Creating Pull Request
        uses: peter-evans/create-pull-request@v2
        with:
          # Personal token is required to trigger additional automation (e.g. presubmits).
          token: ${{ secrets.GITHUB_WRITE_ACCESS_TOKEN }}
          commit-message: "Automatically update LLVM & TF submodules"
          title: "Update LLVM & TF submodules"
          body: "Automated submodule bump from .github/workflows/update_submodules.yml"
          committer: "Submodule Update Action <iree-github-actions-bot@google.com>"
          # TODO(gcmn): Figure out a way to assign this to someone dynamically.
          reviewers: gmngeoffrey
          branch: "auto_submodule_update"
