Files
endoflife-date-release-data/.github/workflows/update.yml
Marc Wrobel 62e466a841 Cleanup and fix update.rb (#261)
Cleanup unused code in update.rb: all methods are now handled by custom scripts. This should fix errors encountered in update.yml workflow (such as https://github.com/endoflife-date/release-data/actions/runs/7279373761) since the dependency to psych has been removed.

This also reformat and update the update.yml workflow so that two workflows targeting the same branch cannot run concurrently. This change has been done because in such cases the last one always fail (changes cannot be commited because the previous workflow already update the branch).

Fixes #260.
2023-12-22 23:13:03 +01:00

84 lines
2.5 KiB
YAML

name: Update Data
on:
workflow_dispatch:
push:
schedule:
# See https://crontab.guru/#17_6,18_*_*_*
- cron: '17 0,6,12,18 * * *'
# Cancel previous runs for a given branch if they are still running when a new one starts.
# This is useful to avoid errors as the same branch would be changed multiple times.
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
update:
name: Update data
runs-on: ubuntu-latest
steps:
- name: Get current week
uses: josStorer/get-current-time@v2
id: current-time
with:
format: YYYY-ww # 2022-01 to 2022-52 for eg
- name: Cache fetched repositories
uses: actions/cache@v3
with:
path: ~/.cache
# The cache is reset on the first build of every week this way.
# Change the -1 part if you need to force reset the cache
key: "${{ steps.current-time.outputs.formattedTime }}-2"
- uses: actions/checkout@v4
name: Clone self repository
with:
ref: ${{ github.head_ref }}
- uses: actions/checkout@v4
id: clone_same_branch
name: Clone website (Same Branch)
continue-on-error: true
with:
repository: endoflife-date/endoflife.date
path: website
submodules: false
ref: ${{github.ref_name}}
- uses: actions/checkout@v4
name: Clone website (Main)
if: steps.clone_same_branch.outcome != 'success'
with:
repository: endoflife-date/endoflife.date
path: website
submodules: false
- uses: ruby/setup-ruby@v1
with:
ruby-version: '3.1'
bundler-cache: true
- uses: actions/setup-python@v4
with:
python-version: '3.11'
cache: 'pip'
- run: pip install -r requirements.txt
- name: Custom Updates
env:
PYPPETEER_HOME: /home/runner/.cache/pyppeteer # Add chromium downloaded by pyppeteer to the cache.
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: for i in src/*.py; do python $i;done
- name: Build commit message
id: update_releases
run: bundle exec ruby update.rb
- name: Commit and update new releases
uses: stefanzweifel/git-auto-commit-action@v5
with:
commit_message: ${{ fromJSON(steps.update_releases.outputs.commit_message)}}
commit_author: 'github-actions[bot] <github-actions[bot]@users.noreply.github.com>'