(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

View File

@ -1,6 +1,6 @@
{
"name": "grist-core",
"version": "0.7.3",
"version": "0.7.4",
"license": "Apache-2.0",
"description": "Grist is the evolution of spreadsheets",
"homepage": "https://github.com/gristlabs/grist-core",

View File

@ -3269,13 +3269,13 @@ graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2:
resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee"
integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==
grain-rpc@0.1.6:
version "0.1.6"
resolved "https://registry.yarnpkg.com/grain-rpc/-/grain-rpc-0.1.6.tgz#85928758705a47d0e2cb2d07626dd480cbf60cec"
integrity sha1-hZKHWHBaR9Diyy0HYm3UgMv2DOw=
grain-rpc@0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/grain-rpc/-/grain-rpc-0.1.7.tgz#e69dcba6a5788f0a20542a427de6f708cf0699e8"
integrity sha512-ExN19s6e/VfiQQupb52uI9yIz2FWgL702yelYn3N4sS5/+jkDjC4MhLNJpfp8LxAdBIknJ3kTztzVz+PdRpBVg==
dependencies:
events "^1.1.1"
ts-interface-checker "^0.1.3"
ts-interface-checker "^1.0.0"
grainjs@1.0.1, grainjs@^1.0.1:
version "1.0.1"
@ -7006,10 +7006,10 @@ trim-newlines@^1.0.0:
resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613"
integrity sha1-WIeWa7WCpFA6QetST301ARgVphM=
ts-interface-checker@0.1.6, ts-interface-checker@^0.1.3:
version "0.1.6"
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-0.1.6.tgz#89e7e0df05b254e591f2923bd2a2c261f4320dbf"
integrity sha512-vuhYd/G9vX11FQPUUp0YWJ8AKQn68VlCKVzAXMuN5/4lVtGtlnDsCfo8QkkCAb6db9xoxg11QixGeggH5NCF3A==
ts-interface-checker@1.0.2, ts-interface-checker@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/ts-interface-checker/-/ts-interface-checker-1.0.2.tgz#63f73a098b0ed34b982df1f490c54890e8e5e0b3"
integrity sha512-4IKKvhZRXhvtYF/mtu+OCfBqJKV6LczUq4kQYcpT+iSB7++R9+giWnp2ecwWMIcnG16btVOkXFnoxLSYMN1Q1g==
tslib@^1.9.0:
version "1.13.0"