Monitor docker images update on image registry using GitHub Actions
A demo is shown below. You shouldn't change the steps marked as [Necessary]. What you need to do is:
- [Must] Set the image name and tag (default to latest) in
envpart, currently only support public images in DockerHub. - [optional] Set the time interval checking the update in
on-schedule-cronpart. - [optional] Set the notification-related info, like email notifier in the last step.
name: "test" on: schedule: # Every hour - cron: '0 */1 * * *' env: IMAGE: sharelatex/sharelatex TAG: latest jobs: test: runs-on: ubuntu-latest steps: # [Necessary] Create ENV Event to escape \ in image name - name: Create ENV EVENT run: | echo EVENT=`echo ${{ env.IMAGE }} | sed 's#/#\##g'`_${{ env.TAG }} >> $GITHUB_ENV # [Necessary] Restore the cache saved in the last run - name: Cache file uses: actions/cache@v3 with: key: ${{ env.EVENT }}-${{ github.run_number }} restore-keys: | ${{ env.EVENT }}- path: ${{ env.EVENT }}.json # [Necessary] Check update - name: Check DockerHub image with latest tag id: dockerhub uses: ActionsTools/docker-image-update-monitor-action@v1.0.0 with: image: ${{ env.IMAGE }} tag: ${{ env.TAG }} - name: Show results run: | echo ${{ steps.dockerhub.outputs.has_update }} echo ${{ steps.dockerhub.outputs.update_time }} - name: Send email if it has update if: ${{ steps.dockerhub.outputs.has_update == 'true' }} uses: dawidd6/action-send-mail@v3 with: server_address: smtp.gmail.com server_port: 465 username: ${{secrets.MAIL_USERNAME}} password: ${{secrets.MAIL_PASSWORD}} secure: true subject: The image ${{env.IMAGE}} in breach ${{ env.TAG }} has update to: ${{ secrets.MAIL_RECEIVER}} from: Docker Image Update Monitor