1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
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 "scolebourne@joda.org"
- 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) <scolebourne@joda.org>
author: Stephen Colebourne (CI) <scolebourne@joda.org>
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
|