mirror of
https://github.com/TecharoHQ/anubis.git
synced 2026-04-09 10:08:45 +00:00
Closes #1159 This uses the binaryen tool wasm2js to compile the Anubis WASM blobs to JavaScript. This produces biblically large (520Ki) outputs when you inline both hashx and sha256 solvers, but this is a tradeoff that I'm willing to accept. The performance is good enough in my testing with JIT enabled. I fear that this may end up being terrible with JIT disabled. I have no idea if this will work on big endian or not. Signed-off-by: Xe Iaso <me@xeiaso.net>
94 lines
2.7 KiB
YAML
94 lines
2.7 KiB
YAML
name: Docker image builds
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches: ["main"]
|
|
tags: ["v*"]
|
|
|
|
env:
|
|
DOCKER_METADATA_SET_OUTPUT_ENV: "true"
|
|
|
|
permissions:
|
|
contents: read
|
|
packages: write
|
|
attestations: write
|
|
id-token: write
|
|
pull-requests: write
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
with:
|
|
fetch-tags: true
|
|
fetch-depth: 0
|
|
persist-credentials: false
|
|
|
|
- name: Set lowercase image name
|
|
run: |
|
|
echo "IMAGE=ghcr.io/${GITHUB_REPOSITORY,,}" >> $GITHUB_ENV
|
|
|
|
- name: Set up Homebrew
|
|
uses: Homebrew/actions/setup-homebrew@main
|
|
|
|
- name: Setup Homebrew cellar cache
|
|
uses: actions/cache@0400d5f644dc74513175e3cd8d07132dd4860809 # v4.2.4
|
|
with:
|
|
path: |
|
|
/home/linuxbrew/.linuxbrew/Cellar
|
|
/home/linuxbrew/.linuxbrew/bin
|
|
/home/linuxbrew/.linuxbrew/etc
|
|
/home/linuxbrew/.linuxbrew/include
|
|
/home/linuxbrew/.linuxbrew/lib
|
|
/home/linuxbrew/.linuxbrew/opt
|
|
/home/linuxbrew/.linuxbrew/sbin
|
|
/home/linuxbrew/.linuxbrew/share
|
|
/home/linuxbrew/.linuxbrew/var
|
|
key: ${{ runner.os }}-go-homebrew-cellar-${{ hashFiles('go.sum') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-go-homebrew-cellar-
|
|
|
|
- name: Install Brew dependencies
|
|
run: |
|
|
brew bundle
|
|
|
|
- uses: actions-rust-lang/setup-rust-toolchain@02be93da58aa71fb456aa9c43b301149248829d8 # v1.15.1
|
|
with:
|
|
cache: false
|
|
target: wasm32-unknown-unknown
|
|
|
|
- name: Setup Binaryen
|
|
uses: Aandreba/setup-binaryen@77f25f9d7d30f09667a2535888bf9516b31a4cd7 # v1.0.0
|
|
|
|
- name: Log into registry
|
|
uses: docker/login-action@184bdaa0721073962dff0199f1fb9940f07167d1 # v3.5.0
|
|
with:
|
|
registry: ghcr.io
|
|
username: ${{ github.repository_owner }}
|
|
password: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Docker meta
|
|
id: meta
|
|
uses: docker/metadata-action@c1e51972afc2121e065aed6d45c65596fe445f3f # v5.8.0
|
|
with:
|
|
images: ${{ env.IMAGE }}
|
|
|
|
- name: Build and push
|
|
id: build
|
|
run: |
|
|
npm ci
|
|
npm run container
|
|
env:
|
|
DOCKER_REPO: ${{ env.IMAGE }}
|
|
SLOG_LEVEL: debug
|
|
|
|
- name: Generate artifact attestation
|
|
uses: actions/attest-build-provenance@977bb373ede98d70efdf65b84cb5f73e068dcc2a # v3.0.0
|
|
with:
|
|
subject-name: ${{ env.IMAGE }}
|
|
subject-digest: ${{ steps.build.outputs.digest }}
|
|
push-to-registry: true
|