Merge from GO #329
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This workflow will run configured tests for any updated MLC script | |
name: Test script on modified meta | |
on: | |
pull_request: | |
branches: [ "main", "dev" ] | |
paths: | |
- 'script/**meta.yaml' | |
jobs: | |
get_modified_files: | |
runs-on: ubuntu-latest | |
outputs: | |
processed_files: ${{ steps.modified-files.outputs.processed_files }} | |
steps: | |
- name: 'Checkout' | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 2 | |
- name: Setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install pyyaml | |
- name: Get changed files | |
id: modified-files | |
run: | | |
git remote add upstream ${{ github.event.pull_request.base.repo.clone_url }} | |
git fetch upstream | |
changed_files=$(git diff upstream/${{ github.event.pull_request.base.ref }} --name-only | paste -sd, -) | |
echo "$changed_files" | python3 .github/scripts/list_modified_files.py | |
process_modified_files: | |
runs-on: ubuntu-latest | |
needs: get_modified_files | |
if: needs.get_modified_files.outputs.processed_files != '[]' && needs.get_modified_files.outputs.processed_files != '' | |
strategy: | |
fail-fast: false | |
matrix: | |
file_info: ${{ fromJSON(needs.get_modified_files.outputs.processed_files).file_info }} | |
steps: | |
- name: Process meta.yaml file | |
run: | | |
echo "Processing ${{ matrix.file_info.file }} with run number ${{ matrix.file_info.num_run }}" | |
pip install mlcflow | |
mlc pull repo ${{ github.event.pull_request.head.repo.html_url }} --branch=${{ github.event.pull_request.head.ref }} | |
mlc test script ${{ matrix.file_info.uid}} --test_input_index=${{ matrix.file_info.num_run }} --docker_mlc_repo=${{ github.event.pull_request.head.repo.html_url }} --docker_mlc_repo_branch=${{ github.event.pull_request.head.ref }} --quiet | |
document_modified_scripts: | |
runs-on: ubuntu-latest | |
needs: get_modified_files | |
if: ${{ needs.get_modified_files.outputs.processed_files != '[]' && needs.get_modified_files.outputs.processed_files != '' && github.event.pull_request.base.ref == 'dev' }} | |
permissions: | |
contents: write | |
strategy: | |
fail-fast: false | |
matrix: | |
modified_metas: ${{ fromJSON(needs.get_modified_files.outputs.processed_files).modified_metas }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
path: automation-scripts | |
- name: Document meta.yaml file | |
run: | | |
echo "Documenting ${{ matrix.modified_metas.file }}" | |
pip install mlcflow | |
mlc add repo automation-scripts | |
mlc doc script ${{ matrix.modified_metas.uid}} --quiet | |
cd automation-scripts | |
find . -type f -name README.md -exec git add {} + | |
# Use the GitHub actor's name and email | |
git config --global user.name github-actions[bot] | |
git config --global user.email "github-actions[bot]@users.noreply.github.com" | |
# Commit changes | |
git commit -m '[Automated Commit] Document ${{ matrix.modified_metas.file}} [skip ci]' | |
git push | |