{CI} Add codegen survey bot #2479
Workflow file for this run
This file contains 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
name: Generate Release Version and Comment PR | |
on: | |
workflow_dispatch: | |
pull_request_target: | |
types: [opened, labeled, unlabeled, synchronize] | |
branches: | |
- main | |
paths: | |
- '**.py' | |
- '!**/test_*.py' | |
permissions: {} | |
jobs: | |
version-cal: | |
if: ${{ !contains(github.event.pull_request.labels.*.name, 'skip-cal-version') && (!contains(fromJSON('["labeled", "unlabeled"]'), github.event.action) || github.event.label.name != 'release-version-block') }} | |
runs-on: ubuntu-latest | |
permissions: | |
pull-requests: write | |
contents: read | |
steps: | |
- name: Set Init Version Message | |
env: | |
action: ${{ toJSON(github.event.action) }} | |
label: ${{ toJSON(github.event.label) }} | |
run: | | |
echo "message=$(echo 'Suggested init version: 1.0.0b1 for preview release and 1.0.0 for stable release')" >> $GITHUB_ENV | |
- name: Set up Python 3.10 | |
uses: actions/setup-python@v3 | |
with: | |
python-version: "3.10" | |
- name: Checkout CLI extension repo | |
uses: actions/checkout@master | |
with: | |
fetch-depth: 0 # checkout all branches | |
ref: ${{ github.event.pull_request.head.ref }} | |
repository: ${{ github.event.pull_request.head.repo.full_name }} # checkout pull request branch | |
- name: Show workdirectory after site cloned | |
run: | | |
pwd | |
ls | |
- name: Get Diff Files | |
env: | |
bash_sha: ${{ github.event.pull_request.base.sha }} | |
base_branch: ${{ github.event.pull_request.base.ref }} | |
base_branch_pre: "upstream" | |
diff_code_file: "diff_codes.txt" | |
diff_sha: ${{ github.event.pull_request.head.sha }} | |
diff_branch: ${{ github.event.pull_request.head.ref }} | |
repo_full_name: ${{ github.event.pull_request.head.repo.full_name }} | |
run: | | |
set -x | |
git --version | |
git log --oneline | head -n 30 | |
git branch -a | |
git fetch https://github.com/Azure/azure-cli-extensions.git "$base_branch":"$base_branch_pre"/"$base_branch" | |
git checkout "$base_branch_pre"/"$base_branch" | |
git log --oneline | head -n 30 | |
git checkout "$diff_branch" | |
git log --oneline | head -n 30 | |
git --no-pager diff --name-only --diff-filter=ACMRT "$base_branch_pre"/"$base_branch"..."$diff_branch" > changed_files | |
cat changed_files | |
cat changed_files | grep azext_ | awk -F"azext_" '{print $1}'| awk -F"/" '{print $2}' | sort | uniq > changed_modules | |
echo "changed_module_list=$(cat changed_files | grep azext_ | awk -F"azext_" '{print $1}'| awk -F"/" '{print $2}' | sort | uniq | xargs)" >> $GITHUB_ENV | |
git --no-pager diff --diff-filter=ACMRT "$base_branch_pre"/"$base_branch"..."$diff_branch" > "$diff_code_file" | |
- name: Display Diff Modules | |
run: | | |
for mod in "$changed_module_list" | |
do | |
echo changed module: "${mod}" | |
done | |
- name: Checkout CLI main repo | |
uses: actions/checkout@master | |
with: | |
repository: Azure/azure-cli | |
path: ./azure-cli | |
- name: Show workdirectory after cli cloned | |
run: | | |
pwd | |
ls | |
- name: Move the main repo to the same level as the extension repo | |
run: | | |
mv azure-cli ../ | |
cd ../ | |
pwd | |
ls | |
- name: Install azdev | |
run: | | |
python -m pip install --upgrade pip | |
set -ev | |
python -m venv env | |
chmod +x env/bin/activate | |
source ./env/bin/activate | |
pip install azdev | |
azdev --version | |
cd ../ | |
azdev setup -c azure-cli -r azure-cli-extensions --debug | |
az --version | |
pip list -v | |
- name: Gen Base and Diff Metadata | |
id: get_comment_message | |
env: | |
pr_label_list: ${{ toJson(github.event.pull_request.labels.*.name) }} | |
base_branch: ${{ github.event.pull_request.base.ref }} | |
base_branch_pre: "upstream" | |
diff_code_file: "diff_codes.txt" | |
diff_branch: ${{ github.event.pull_request.head.ref }} | |
base_meta_path: "./base_meta/" | |
diff_meta_path: "./diff_meta/" | |
output_file: "version_update.txt" | |
run: | | |
chmod +x env/bin/activate | |
source ./env/bin/activate | |
set -ev | |
git checkout "$base_branch_pre"/"$base_branch" | |
mkdir "$base_meta_path" | |
for mod in "$changed_module_list" | |
do | |
echo changed module: "${mod}" | |
azdev extension add "${mod}" && azdev command-change meta-export "${mod}" --meta-output-path ./"$base_meta_path"/ && azdev extension remove "${mod}" | |
done | |
git checkout "$diff_branch" | |
mkdir "$diff_meta_path" | |
for mod in "$changed_module_list" | |
do | |
echo changed module: "${mod}" | |
azdev extension add "${mod}" && azdev command-change meta-export "${mod}" --meta-output-path ./"$diff_meta_path"/ && azdev extension remove "${mod}" | |
done | |
ls ./"$base_meta_path"/ | |
ls ./"$diff_meta_path"/ | |
git checkout "$base_branch_pre"/"$base_branch" | |
python scripts/ci/release_version_cal.py | |
# echo "commit_message=$(cat $output_file)" >> $GITHUB_ENV | |
- name: Comment on the pull request | |
uses: mshick/add-pr-comment@v2 | |
with: | |
repo-token: ${{ secrets.GITHUB_TOKEN }} | |
message-id: versioncommentbot | |
message-path: | | |
version_update.txt | |
message-failure: | | |
Please refer to [Extension version schema](https://github.com/Azure/azure-cli/blob/release/doc/extensions/versioning_guidelines.md) to update release versions. | |
- name: Add block release label | |
uses: actions-ecosystem/action-add-labels@v1 | |
if: ${{ steps.get_comment_message.outputs.BlockPR == 1 }} | |
with: | |
labels: release-version-block | |
- name: Remove block release label | |
uses: mondeja/remove-labels-gh-action@v2 | |
if: ${{ steps.get_comment_message.outputs.BlockPR == 0 }} | |
with: | |
token: ${{ secrets.GITHUB_TOKEN }} | |
labels: release-version-block |