(core) regularly freshen grist-core:latest docker image

Summary:
 * Keeps `grist-core:latest` docker image up to date with grist-core
   source, with a daily cron job.
 * Update yarn.lock file.
 * In passing, tag current version for a versioned release.

When a push to `main` branch passes tests, the result is placed in `latest_candidate` branch. The cron job will update docker up from `latest_candidate`, placing code used for image in `latest` branch.

Test Plan: tested in a grist-core fork

Reviewers: georgegevoian

Reviewed By: georgegevoian

Differential Revision: https://phab.getgrist.com/D3156
This commit is contained in:
Paul Fitzpatrick
2021-11-24 13:45:21 -05:00
parent 064455b2f7
commit 6e3ec298f2
5 changed files with 54 additions and 11 deletions

View File

@@ -18,5 +18,5 @@ jobs:
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: gristlabs/grist
repository: ${{ github.repository }}
tag_with_ref: true

35
.github/workflows/docker_latest.yml vendored Normal file
View File

@@ -0,0 +1,35 @@
name: Push latest Docker image
on:
push:
# Trigger if latest_candidate updates. This is automatically done by another
# workflow whenever tests pass on main - but events don't chain without using
# personal access tokens so we just use a cron job.
branches: [ latest_candidate ]
schedule:
# Run at 5:41 UTC daily
- cron: '41 5 * * *'
workflow_dispatch:
jobs:
push_to_registry:
name: Push latest Docker image to Docker Hub
runs-on: ubuntu-latest
steps:
- name: Check out the repo
uses: actions/checkout@v2
with:
ref: latest_candidate
- name: Push to Docker Hub
uses: docker/build-push-action@v1
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
repository: ${{ github.repository }}
tags: latest
- name: Update latest branch
uses: ad-m/github-push-action@8407731efefc0d8f72af254c74276b7a90be36e1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: latest
force: true

View File

@@ -43,3 +43,11 @@ jobs:
- name: Run tests
run: VERBOSE=1 DEBUG=1 MOCHA_WEBDRIVER_HEADLESS=1 yarn run test
- name: Update candidate branch
if: ${{ github.event_name == 'push' }}
uses: ad-m/github-push-action@8407731efefc0d8f72af254c74276b7a90be36e1
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
branch: latest_candidate
force: true