rusefi/.github/workflows/set-date.yaml

53 lines
1.9 KiB
YAML

name: Set Date
# Run once every day
# If we run it on schedule, but only change the date stamp if the repo has changed, The date could be behind by up to a day.
# We can't really try to change it with every push the way workflows are set up now,
# because there is no way to control which workflows run first, so some builds will not have the updated date and will lag behind by one build.
# https://help.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token
# "When you use the repository's GITHUB_TOKEN to perform tasks on behalf of the GitHub Actions app,
# events triggered by the GITHUB_TOKEN will not create a new workflow run."
on:
schedule:
- cron: '0 0 * * *'
jobs:
update-date:
runs-on: ubuntu-latest
if: ${{ github.repository == 'rusefi/rusefi' }}
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Check last date
run: if [ "$(git log -1 --pretty=%B)" = "Update date" ]; then echo "skip=true" >> $GITHUB_ENV; fi
- name: Install Tools
if: ${{ env.skip != 'true' }}
run: |
sudo bash misc/actions/add-ubuntu-latest-apt-mirrors.sh
sudo apt-get install subversion
- name: Update version header in git
if: ${{ env.skip != 'true' }}
working-directory: ./firmware/
run: bash update_version.sh
- name: Write Date File
if: ${{ env.skip != 'true' }}
run: |
echo -e -n "#pragma once\n#define VCS_DATE $(date "+%Y%m%d")\n" > ./firmware/controllers/date_stamp.h
git config --local user.email "action@github.com"
git config --local user.name "GitHub set-date Action"
git commit -m "Update date" -a 2>&1 | grep -E '(nothing to commit|changed)'
git pull --rebase
- name: Push changed date file
if: ${{ env.skip != 'true' }}
uses: ad-m/github-push-action@master
with:
github_token: ${{ github.token }}
branch: master