Skip to content

fix(build): Cache binaries to reduce build time #5

fix(build): Cache binaries to reduce build time

fix(build): Cache binaries to reduce build time #5

name: ci
on:
push:
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GHCR
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Cache Node.js dependencies
- name: Cache Node.js modules
uses: actions/cache@v3
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- name: Cache compiled binaries
uses: actions/cache@v3
with:
path: |
/usr/local/bin/
/usr/local/share/man/man1/
/usr/local/share/man/man5/
key: ${{ runner.os }}-build-${{ hashFiles('Dockerfile') }}
- name: Build and push to GHCR
uses: docker/build-push-action@v6
with:
platforms: linux/amd64,linux/arm64
push: true
tags: |
ghcr.io/rishikanthc/scriberr:nightly
cache-from: type=registry,ref=ghcr.io/rishikanthc/scriberr:nightly
cache-to: type=registry,ref=ghcr.io/rishikanthc/scriberr:nightly,mode=max
- name: Push image to GHCR
run: |
docker buildx imagetools create \
ghcr.io/rishikanthc/scriberr:nightly \
--tag ghcr.io/rishikanthc/scriberr:nightly