openpencil/.github/workflows/native-contracts-image.yml
Danila Poyarkov d44c1f9d82
ci: parallelize quality and trim shard builds (#558)
* ci: parallelize quality and trim shard builds

- Split source, package, repository, and Storybook checks into independent jobs

- Build only Core before quick unit shards instead of all public packages

- Keep full package and dist validation in the dedicated package-quality job

- Disable duplicate Storybook component metadata extraction

* fix(ci): build declarations before source checks

* fix(ci): apply review security and docgen settings

- Pin checkout and disable credential persistence

- Declare read-only workflow permissions

- Explicitly disable Storybook Vue docgen

* ci: clarify check and step names

* fix(ci): cap workflow job runtimes

- Limit the WebView dependency install to three minutes

- Limit native contracts to eight minutes

- Limit all other CI jobs to ten minutes

* ci: retry native contracts on a fresh runner

* ci: move native contracts to Ubuntu 24

- Leave the deprecated Ubuntu 22 hosted image

- Retry WebKit dependency provisioning on the current runner image

* ci: prebuild native contract dependencies

* ci: pin native contracts image digest

* fix(ci): authenticate native image pulls

* fix(ci): include Bun archive tooling

* ci: pin updated native contracts image

* fix(tools): register CI image tooling
2026-08-18 22:52:18 +03:00

45 lines
1.2 KiB
YAML

name: Build native contracts CI image
on:
workflow_dispatch:
push:
branches: [master]
paths:
- 'tools/ci-images/native-contracts/Dockerfile'
- '.github/workflows/native-contracts-image.yml'
permissions:
contents: read
packages: write
concurrency:
group: native-contracts-image
cancel-in-progress: true
jobs:
publish:
name: Publish native contracts image
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: docker/login-action@9780b0c442fbb1117ed29e0efdff1e18412f7567
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435
- uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83
with:
context: tools/ci-images/native-contracts
push: true
tags: |
ghcr.io/open-pencil/native-contracts-ci:ubuntu-24.04
ghcr.io/open-pencil/native-contracts-ci:${{ github.sha }}
cache-from: type=gha
cache-to: type=gha,mode=max