Skip to content

Update

Update #90

Workflow file for this run

name: Update
on:
schedule:
# update every monday, thursday, 00:00 -> 09:00 (GMT+9)
- cron: "0 0 * * 1,4"
workflow_dispatch:
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
persist-credentials: false
fetch-depth: 0
- id: check_update
name: Check if new update is available
run: |
hub_last_update_date=$(curl -s https://hub.docker.com/v2/namespaces/jenkins/repositories/jenkins/tags?page_size=100 | jq -r '.results[] | select(.name == "lts") | .last_updated')
echo "hub_last_update_date: $hub_last_update_date"
echo "HUB_LAST_UPDATE_DATE=$hub_last_update_date" >> $GITHUB_ENV
last_update_date=$(cat last_update_date.txt)
echo "last_update_date: $last_update_date"
if [ "$hub_last_update_date" != "$last_update_date" ]; then
echo "New update found!"
echo "UPDATE_PROCESS=true" >> $GITHUB_ENV
else
echo "No new updates found."
echo "UPDATE_PROCESS=false" >> $GITHUB_ENV
fi
- name: Get jenkins version
if: env.UPDATE_PROCESS == 'true'
run: |
docker pull jenkins/jenkins:lts
jenkins_version=$(docker inspect jenkins/jenkins:lts --format '{{ index .Config.Labels "org.opencontainers.image.version" }}')
echo "Jenkins version: $jenkins_version"
echo "JENKINS_VERSION=$jenkins_version" >> $GITHUB_ENV
- name: Docker Setup QEMU
if: env.UPDATE_PROCESS == 'true'
uses: docker/[email protected]
- name: Docker Setup Buildx
if: env.UPDATE_PROCESS == 'true'
uses: docker/[email protected]
- name: Docker Login
if: env.UPDATE_PROCESS == 'true'
uses: docker/[email protected]
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Build Image with version tag
if: env.UPDATE_PROCESS == 'true'
run: docker buildx build --platform linux/arm64,linux/amd64 --push --tag waterticket/jenkins-withdocker-all-architecture:${{ env.JENKINS_VERSION }} .
- name: Build Image with latest tag
if: env.UPDATE_PROCESS == 'true'
run: docker buildx build --platform linux/arm64,linux/amd64 --push --tag waterticket/jenkins-withdocker-all-architecture:latest .
- name: Save new update date
if: env.UPDATE_PROCESS == 'true'
run: echo "${{ env.HUB_LAST_UPDATE_DATE }}" > last_update_date.txt
- name: Set date in environment variable
if: env.UPDATE_PROCESS == 'true'
run: echo "DATE=$(date +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_ENV
- name: Commit & Push changes
if: env.UPDATE_PROCESS == 'true'
uses: Andro999b/push@patch-1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: main
message: >
chore: updates in ${{ env.DATE }}