Refer to til/build.yml for examples.
GitHub Actions use YAML, so create a build.yml file in your project root.
name: Build READMEThe name of your action.
on:
push:
branches:
- mainWhen you want this action to run. In this case, we want to run it when we push to the main branch.
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Check out repo
uses: actions/checkout@v2
# We need full history to introspect created/updated:
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v1
with:
python-version: 3.8
- uses: actions/cache@v1
name: Configure pip caching
with:
path: ~/.cache/pip
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
restore-keys: |
${{ runner.os }}-pip-
- name: Install Python dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Build database
run: python build_database.py
- name: Update README
run: |-
python update_readme.py --rewrite
cat README.md
- name: Commit and push if README changed
run: |-
git diff
git config --global user.email "[email protected]"
git config --global user.name "README-bot"
git diff --quiet || (git add README.md && git commit -m "Updated README")
git push
What we want the action to execute. This action will run the build job, which has several steps:
Check out repo: Check out the repository to inspect when files were created/updated. This uses an existing GitHub Actioncheckout@v2Set up Python: Prepare a Python environment using 3.8, with theactions/setup-python@v1action. This also installs pip.- Configures pip
- Installs dependencies from
requirements.txt - Runs
build_database.py - Runs
update_readme.py - Creates a commit and pushes if the README changed