👷 Add dev builder

New workflow to build dev branch on push/pulls and upload to ghcr.io with dev tag
This commit is contained in:
Chris
2022-05-13 12:40:02 -04:00
committed by Aj - Thomas
parent ac9ebe4160
commit 527eb373a9
2 changed files with 134 additions and 8 deletions

View File

@@ -1,4 +1,5 @@
name: Build and publish Docker image
name: Docker Build
# Workflow to build and publish docker image
on:
push:
@@ -7,12 +8,16 @@ on:
workflow_dispatch:
env:
IMAGE_NAME: homarr
# Use docker.io for Docker Hub if empty
REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
jobs:
# Push image to GitHub Packages.
# See also https://docs.docker.com/docker-hub/builds/
build:
yarn_install_and_build:
# Will run yarn install && yarn build
runs-on: ubuntu-latest
steps:
- name: Setup
@@ -20,9 +25,11 @@ jobs:
- name: Checkout
uses: actions/checkout@v3
- name: Get yarn cache directory path
# to help speed up build times
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Yarn cache
# to help speed up build times
uses: actions/cache@v3
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
@@ -43,6 +50,7 @@ jobs:
- run: yarn install --frozen-lockfile
- run: yarn build
- name: Cache build output
# to copy needed files to docker build job
uses: actions/cache@v2
id: restore-build
with:
@@ -52,11 +60,11 @@ jobs:
./public/
./.next/static/
./.next/standalone/
./packages.jsan
./packages.json
key: ${{ github.sha }}
docker:
needs: [build]
docker_image_build_and_push:
needs: [yarn_install_and_build]
runs-on: ubuntu-latest
permissions:
packages: write
@@ -73,14 +81,14 @@ jobs:
./public/
./.next/static/
./.next/standalone/
./packages.jsan
./packages.json
key: ${{ github.sha }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v4
with:
# list of Docker images to use as base name for tags
images: ghcr.io/${{ github.repository }}
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
# generate Docker tags based on the following events/attributes
tags: |
type=raw,value=latest