# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you 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
#
#   http://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.

# To learn more about GitHub Actions in Apache Beam check the CI.md

name: Build python source distribution and wheels

on:
  schedule:
    - cron: '10 2 * * *'
  push:
    branches: ['master', 'release-*']
    tags: 'v*'
  pull_request:
    branches: ['master', 'release-*']
    tags: 'v*'
    paths: ['sdks/python/**', 'model/**', 'release/**']


env:
  GCP_PATH: "gs://${{ secrets.GCP_PYTHON_WHEELS_BUCKET }}/${GITHUB_REF##*/}/${GITHUB_SHA}-${GITHUB_RUN_ID}/"


jobs:

  check_gcp_variables:
    timeout-minutes: 5
    name: "Check GCP variables"
    runs-on: ubuntu-latest
    outputs:
      gcp-variables-set: ${{ steps.check_gcp_variables.outputs.gcp-variables-set }}
    steps:
      - uses: actions/checkout@v2
      - name: "Check are GCP variables set"
        run: "./scripts/ci/ci_check_are_gcp_variables_set.sh"
        id: check_gcp_variables
        env:
          GCP_SA_EMAIL: ${{ secrets.GCP_SA_EMAIL }}
          GCP_SA_KEY: ${{ secrets.GCP_SA_KEY }}
          GCP_PYTHON_WHEELS_BUCKET: ${{ secrets.GCP_PYTHON_WHEELS_BUCKET }}
          GCP_PROJECT_ID: "not-needed-here"
          GCP_REGION: "not-needed-here"
          GCP_TESTING_BUCKET: "not-needed-here"

  build_source:
    runs-on: ubuntu-latest
    name: Build python source distribution
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Install python
        uses: actions/setup-python@v2
        with:
          python-version: 3.7
      - name: Get build dependencies
        working-directory: ./sdks/python
        run: python -m pip install -r build-requirements.txt
      - name: Install wheels
        run: python -m pip install wheel
      - name: Build source
        working-directory: ./sdks/python
        run: python setup.py sdist --formats=zip
      - name: Add checksums
        working-directory: ./sdks/python/dist
        run: |
          file=$(ls | grep .zip | head -n 1)
          sha512sum $file > ${file}.sha512
      - name: Unzip source
        working-directory: ./sdks/python
        run: unzip dist/$(ls dist | grep .zip | head -n 1)
      - name: Rename source directory
        working-directory: ./sdks/python
        run: mv $(ls | grep apache-beam) apache-beam-source
      - name: Upload source as artifact
        uses: actions/upload-artifact@v2
        with:
          name: source
          path: sdks/python/apache-beam-source
      - name: Upload compressed sources as artifacts
        uses: actions/upload-artifact@v2
        with:
          name: source_zip
          path: sdks/python/dist

  prepare_gcs:
    name: Prepare GCS
    needs:
      - build_source
      - check_gcp_variables
    runs-on: ubuntu-latest
    if: needs.check_gcp_variables.outputs.gcp-variables-set == 'true' && github.event_name != 'pull_request'
    steps:
      - name: Authenticate on GCP
        uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
        with:
          service_account_email: ${{ secrets.GCP_SA_EMAIL }}
          service_account_key: ${{ secrets.GCP_SA_KEY }}
      - name: Remove existing files on GCS bucket
        run: gsutil rm -r ${{ env.GCP_PATH }} || true

  upload_source_to_gcs:
    name: Upload python source distribution to GCS bucket
    needs:
      - prepare_gcs
      - check_gcp_variables
    runs-on: ubuntu-latest
    if: needs.check_gcp_variables.outputs.gcp-variables-set == 'true'
    steps:
      - name: Download compressed sources from artifacts
        uses: actions/download-artifact@v2
        with:
          name: source_zip
          path: source/
      - name: Authenticate on GCP
        uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
        with:
          service_account_email: ${{ secrets.GCP_SA_EMAIL }}
          service_account_key: ${{ secrets.GCP_SA_KEY }}
      - name: Copy sources to GCS bucket
        run: gsutil cp -r -a public-read source/* ${{ env.GCP_PATH }}

  build_wheels:
    name: Build python wheels on ${{ matrix.os_python.os }}
    needs: build_source
    runs-on: ${{ matrix.os_python.os }}
    strategy:
      matrix:
        os_python: [
          {"os": "ubuntu-latest", "python": "cp36-* cp37-* cp38-*"},
          {"os": "macos-latest", "python": "cp36-* cp37-* cp38-*"},
          {"os": "windows-latest", "python": "cp36-* cp37-* cp38-*"},
        ]
    steps:
    - name: Download python source distribution from artifacts
      uses: actions/download-artifact@v2
      with:
        name: source
        path: apache-beam-source
    - name: Install Python
      uses: actions/setup-python@v2
      with:
        python-version: 3.7
    - name: Install cibuildwheel
      run: pip install cibuildwheel==1.4.2
    - name: Build wheel
      working-directory: apache-beam-source
      env:
        CIBW_BUILD: ${{ matrix.os_python.python }}
        CIBW_BEFORE_BUILD: pip install cython
      run: cibuildwheel --print-build-identifiers && cibuildwheel --output-dir wheelhouse
      shell: bash
    - name: install sha512sum on MacOS
      if: startsWith(matrix.os_python.os, 'macos')
      run: brew install coreutils
    - name: Add checksums
      working-directory: apache-beam-source/wheelhouse/
      run: |
        for file in *.whl; do
          sha512sum $file > ${file}.sha512
        done
      shell: bash
    - name: Upload wheels as artifacts
      uses: actions/upload-artifact@v2
      with:
        name: wheelhouse-${{ matrix.os_python.os }}
        path: apache-beam-source/wheelhouse/

  upload_wheels_to_gcs:
    name: Upload wheels to GCS bucket
    needs:
      - build_wheels
      - check_gcp_variables
    runs-on: ubuntu-latest
    if: needs.check_gcp_variables.outputs.gcp-variables-set == 'true' && github.event_name != 'pull_request'
    strategy:
      matrix:
        os : [ubuntu-latest, macos-latest, windows-latest]
    steps:
    - name: Download wheels from artifacts
      uses: actions/download-artifact@v2
      with:
        name: wheelhouse-${{ matrix.os }}
        path: wheelhouse/
    - name: Authenticate on GCP
      uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
      with:
        service_account_email: ${{ secrets.GCP_SA_EMAIL }}
        service_account_key: ${{ secrets.GCP_SA_KEY }}
    - name: Copy wheels to GCS bucket
      run: gsutil cp -r -a public-read wheelhouse/* ${{ env.GCP_PATH }}
    - name: Create github action information file on GCS bucket
      run: |
        cat > github_action_info <<EOF
        GITHUB_WORKFLOW=$GITHUB_WORKFLOW
        GITHUB_RUN_ID=$GITHUB_RUN_ID
        GITHUB_RUN_NUMBER=$GITHUB_RUN_NUMBER
        GITHUB_ACTION=$GITHUB_ACTION
        GITHUB_ACTOR=$GITHUB_ACTOR
        GITHUB_REPOSITORY=$GITHUB_REPOSITORY
        GITHUB_EVENT_NAME=$GITHUB_EVENT_NAME
        GITHUB_SHA=$GITHUB_SHA
        GITHUB_REF=$GITHUB_REF
        # only for forked repositiories
        GITHUB_HEAD_REF=$GITHUB_HEAD_REF
        GITHUB_BASE_REF=$GITHUB_BASE_REF
        EOF
        echo $(cat github_action_info)
        gsutil cp -a public-read github_action_info ${{ env.GCP_PATH }}
    - name: Upload GitHub event file to GCS bucket
      run: gsutil cp -a public-read ${GITHUB_EVENT_PATH} ${{ env.GCP_PATH }}

  list_files_on_gcs:
    name: List files on Google Cloud Storage Bucket
    needs:
     - upload_wheels_to_gcs
     - check_gcp_variables
    runs-on: ubuntu-latest
    if: needs.check_gcp_variables.outputs.gcp-variables-set == 'true' && github.event_name != 'pull_request'
    steps:
    - name: Authenticate on GCP
      uses: GoogleCloudPlatform/github-actions/setup-gcloud@master
      with:
        service_account_email: ${{ secrets.GCP_SA_EMAIL }}
        service_account_key: ${{ secrets.GCP_SA_KEY }}
    - name: List file on Google Cloud Storage Bucket
      run: gsutil ls "${{ env.GCP_PATH }}*"

  tag_repo_nightly:
    name: Tag repo nightly
    needs:
      - build_source
      - build_wheels
    runs-on: ubuntu-latest
    timeout-minutes: 60
    if: github.repository_owner == 'apache' && github.event_name == 'schedule'
    steps:
      - name: Checkout code on master branch
        uses: actions/checkout@master
      - name: Tag commit
        run: |
          BRANCH_NAME=${GITHUB_REF##*/}
          echo "Tagging ${BRANCH_NAME}"
          git tag -f nightly-${BRANCH_NAME} HEAD
      - name: Push tags
        uses: ad-m/github-push-action@master
        with:
          github_token: ${{ secrets.GITHUB_TOKEN }}
          tags: true
          force: true
          branch: master
