Skip to content

Update ASF APIs

Update ASF APIs #48

Workflow file for this run

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@v5
with:
python-version: '3.11'
- name: Cache LocalStack community dependencies (venv)
uses: actions/cache@v4
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: Format code
run: make format-modified
- 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, semver: patch"
token: ${{ secrets.PRO_ACCESS_TOKEN }}
reviewers: alexrashed