Update ASF APIs #37
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: Update ASF APIs | |
on: | |
schedule: | |
- cron: 0 5 * * MON | |
workflow_dispatch: | |
jobs: | |
update-asf: | |
name: Update ASF APIs | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Open Source | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up system wide dependencies | |
run: | | |
sudo apt-get update | |
sudo apt-get install jq | |
- name: Set up Python 3.11 | |
id: setup-python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: '3.11' | |
- name: Cache LocalStack community dependencies (venv) | |
uses: actions/cache@v3 | |
with: | |
path: .venv | |
key: ${{ runner.os }}-python-${{ steps.setup-python.outputs.python-version }}-venv-${{ hashFiles('setup.cfg') }} | |
- name: Install dependencies | |
run: make install-dev | |
- name: Update botocore (specs) | |
run: | | |
source .venv/bin/activate | |
python3 -m pip install --upgrade botocore | |
- name: Update ASF APIs | |
run: | | |
source .venv/bin/activate | |
python3 -m localstack.aws.scaffold upgrade | |
- name: Check for changes | |
id: check-for-changes | |
run: | | |
# Check if there are changed files and store the result in target/diff-check.log | |
# Check against the PR branch if it exists, otherwise against the master | |
# Store the result in target/diff-check.log and store the diff count in the GitHub Action output "diff-count" | |
mkdir -p target | |
(git diff --name-only origin/asf-auto-updates localstack/aws/api/ 2>/dev/null || git diff --name-only origin/master localstack/aws/api/ 2>/dev/null) | tee target/diff-check.log | |
echo "diff-count=$(cat target/diff-check.log | wc -l)" >> $GITHUB_OUTPUT | |
# Store a (multiline-sanitized) list of changed services (compared to the master) in the GitHub Action output "changed-services" | |
echo "changed-services<<EOF" >> $GITHUB_OUTPUT | |
echo "$(git diff --name-only origin/master localstack/aws/api/ | sed 's#localstack/aws/api/#- #g' | sed 's#/__init__.py##g' | sed 's/_/-/g')" >> $GITHUB_OUTPUT | |
echo "EOF" >> $GITHUB_OUTPUT | |
- name: Read PR markdown template | |
if: ${{ success() && steps.check-for-changes.outputs.diff-count != '0' && steps.check-for-changes.outputs.diff-count != '' }} | |
id: template | |
uses: juliangruber/read-file-action@v1 | |
with: | |
path: .github/bot_templates/ASF_UPGRADE_PR.md | |
- name: Add changed services to template | |
if: ${{ success() && steps.check-for-changes.outputs.diff-count != '0' && steps.check-for-changes.outputs.diff-count != '' }} | |
id: markdown | |
uses: mad9000/actions-find-and-replace-string@4 | |
with: | |
source: ${{ steps.template.outputs.content }} | |
find: '{{ SERVICES }}' | |
replace: ${{ steps.check-for-changes.outputs.changed-services }} | |
- name: Create PR | |
uses: peter-evans/create-pull-request@v5 | |
if: ${{ success() && steps.check-for-changes.outputs.diff-count != '0' && steps.check-for-changes.outputs.diff-count != '' }} | |
with: | |
title: "Update ASF APIs" | |
body: "${{ steps.markdown.outputs.value }}" | |
branch: "asf-auto-updates" | |
author: "LocalStack Bot <[email protected]>" | |
committer: "LocalStack Bot <[email protected]>" | |
commit-message: "update generated ASF APIs to latest version" | |
labels: "area: asf, area: dependencies" | |
token: ${{ secrets.PRO_ACCESS_TOKEN }} | |
reviewers: alexrashed |