Skip to content

TZDB check

TZDB check #1666

Workflow file for this run

name: TZDB check
on:
push:
tags:
- 'tzdb*'
schedule:
- cron: '50 1 * * *'
workflow_dispatch:
permissions:
contents: read
jobs:
tzdbcheck:
permissions:
contents: write # for peter-evans/create-pull-request to create branch
pull-requests: write # for peter-evans/create-pull-request to create a PR
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 #v4.2.2
with:
token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
fetch-tags: true
- name: Setup git
run: |
git config --global user.name "Stephen Colebourne (CI)"
git config --global user.email "[email protected]"
- name: Set up JDK
uses: actions/setup-java@3a4f6e1af504cf6a31855fa899c6aa5355ba6c12 #v4.7.0
with:
java-version: 8
distribution: 'temurin'
cache: 'maven'
- name: Maven version
run: |
mkdir -p ./.mvn
echo "-e" >> ./.mvn/maven.config
echo "-B" >> ./.mvn/maven.config
echo "-ntp" >> ./.mvn/maven.config
echo "-DtrimStackTrace=false" >> ./.mvn/maven.config
echo "--settings" >> ./.mvn/maven.config
echo "$( pwd )/.github/maven-settings.xml" >> ./.mvn/maven.config
mvn --version
mkdir -p target
#------------------------------------------------------------------------
- name: Get current version
run: |
CURRENT_TZDB=$(mvn help:evaluate -Dexpression=tz.database.version -q -DforceStdout)
echo "current: $CURRENT_TZDB"
echo "CURRENT_TZDB=$CURRENT_TZDB" >> $GITHUB_ENV
- name: Get latest version
working-directory: target
run: |
git clone https://github.com/JodaOrg/global-tz.git tz
cd tz
git checkout global-tz
LATEST_TZDB=$(git describe --abbrev=0 --tags)
echo "latest: $LATEST_TZDB"
echo "LATEST_TZDB=$LATEST_TZDB" >> $GITHUB_ENV
- name: Compare versions
run: |
echo "current: $CURRENT_TZDB"
echo "latest: $LATEST_TZDB"
if [ "$CURRENT_TZDB" == "$LATEST_TZDB" ]; then echo "NOOP=true" >> $GITHUB_ENV; fi
- name: Checkout tzdb release
if: env.NOOP != 'true'
working-directory: target/tz
run: |
git checkout global-tz
git reset --hard ${LATEST_TZDB} --
git status
- name: Copy files
if: env.NOOP != 'true'
run: |
ls -l target/tz
\cp target/tz/africa src/main/java/org/joda/time/tz/src
\cp target/tz/antarctica src/main/java/org/joda/time/tz/src
\cp target/tz/asia src/main/java/org/joda/time/tz/src
\cp target/tz/australasia src/main/java/org/joda/time/tz/src
\cp target/tz/backward src/main/java/org/joda/time/tz/src
\cp target/tz/etcetera src/main/java/org/joda/time/tz/src
\cp target/tz/europe src/main/java/org/joda/time/tz/src
\cp target/tz/northamerica src/main/java/org/joda/time/tz/src
\cp target/tz/southamerica src/main/java/org/joda/time/tz/src
ls -l src/main/java/org/joda/time/tz/src
- name: Update build with new tzdb
if: env.NOOP != 'true'
run: |
mvn versions:set-property -DnewVersion=${LATEST_TZDB} -Dproperty=tz.database.version -DgenerateBackupPoms=false
mvn install
- name: Create Pull Request
if: env.NOOP != 'true'
id: createpr
uses: peter-evans/create-pull-request@271a8d0340265f705b14b6d32b9829c1cb33d45e #v7.0.8
with:
token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
base: main
commit-message: 'Update time zone data to ${{ env.LATEST_TZDB }}'
committer: Stephen Colebourne (CI) <[email protected]>
author: Stephen Colebourne (CI) <[email protected]>
title: 'Update time zone data to ${{ env.LATEST_TZDB }}'
body: 'Update time zone data to ${{ env.LATEST_TZDB }}'
assignees: jodastephen
labels: TZDB
branch: bot/update-tzdb
- name: Auto-merge the Pull Request
if: steps.createpr.outputs.pull-request-number
run: gh pr merge --squash --auto "${{ steps.createpr.outputs.pull-request-number }}"
env:
GH_TOKEN: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
- name: Delete tzdb tag
if: env.NOOP != 'true' && startsWith(github.ref, 'refs/tags/tzdb')
run: |
git tag --delete "${GITHUB_REF_NAME}" || true
git push --delete origin "${GITHUB_REF_NAME}" || true