Skip to content

build: enforce hermetic, reproducible local↔CI parity #1

build: enforce hermetic, reproducible local↔CI parity

build: enforce hermetic, reproducible local↔CI parity #1

Workflow file for this run

name: CI - Build
on:
workflow_dispatch:
pull_request:
types: [opened, edited, synchronize]
branches: [main]
jobs:
build:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Build hermetic image
run: docker build -f Dockerfile.repro -t lingo-repro:20.12.2 .
- name: Prepare pnpm store path
run: echo "REPRO_PNPM_STORE=${{ runner.temp }}/pnpm-store" >> $GITHUB_ENV
- name: Cache pnpm store
uses: actions/cache@v3
with:
path: ${{ env.REPRO_PNPM_STORE }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: Install deps (container)
run: REPRO_PNPM_STORE="${{ env.REPRO_PNPM_STORE }}" bash scripts/repro/exec.sh pnpm install --frozen-lockfile
- name: Build (container)
run: REPRO_PNPM_STORE="${{ env.REPRO_PNPM_STORE }}" bash scripts/repro/exec.sh pnpm turbo build --force