Commit fc290be8 authored by Mark Tyneway's avatar Mark Tyneway Committed by GitHub

Merge branch 'develop' into deps/speed-up-compilation

parents 10f1de00 725b0261
---
'@eth-optimism/foundry': minor
---
Initial release, pin to b7b1ec471bdd38221773e1a569dc4f20297bd7db
---
'@eth-optimism/ci-builder': patch
---
Use ethereumoptimism/foundry:latest
...@@ -30,6 +30,7 @@ jobs: ...@@ -30,6 +30,7 @@ jobs:
go-builder: ${{ steps.packages.outputs.go-builder }} go-builder: ${{ steps.packages.outputs.go-builder }}
js-builder: ${{ steps.packages.outputs.js-builder }} js-builder: ${{ steps.packages.outputs.js-builder }}
ci-builder: ${{ steps.packages.outputs.ci-builder }} ci-builder: ${{ steps.packages.outputs.ci-builder }}
foundry: ${{ steps.packages.outputs.foundry }}
steps: steps:
- name: Checkout Repo - name: Checkout Repo
...@@ -236,6 +237,32 @@ jobs: ...@@ -236,6 +237,32 @@ jobs:
push: true push: true
tags: ethereumoptimism/ci-builder:${{ needs.release.outputs.ci-builder }},ethereumoptimism/ci-builder:latest tags: ethereumoptimism/ci-builder:${{ needs.release.outputs.ci-builder }},ethereumoptimism/ci-builder:latest
foundry:
name: Publish foundry ${{ needs.release.outputs.foundry }}
needs: release
if: needs.release.outputs.foundry != ''
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Login to Docker Hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_SECRET }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Publish foundry
uses: docker/build-push-action@v2
with:
context: .
file: ./ops/docker/foundry/Dockerfile
push: true
tags: ethereumoptimism/foundry:${{ needs.release.outputs.foundry }},ethereumoptimism/foundry:latest
proxyd: proxyd:
name: Publish proxyd Version ${{ needs.release.outputs.proxyd }} name: Publish proxyd Version ${{ needs.release.outputs.proxyd }}
needs: release needs: release
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
# be used to build any of the follow-on services # be used to build any of the follow-on services
# #
# ### BASE: Install deps # ### BASE: Install deps
FROM ghcr.io/foundry-rs/foundry:latest as foundry FROM ethereumoptimism/foundry:latest as foundry
FROM node:16-alpine3.14 as base FROM node:16-alpine3.14 as base
RUN apk --no-cache add curl jq python3 ca-certificates git make gcc musl-dev linux-headers bash build-base RUN apk --no-cache add curl jq python3 ca-certificates git make gcc musl-dev linux-headers bash build-base
......
FROM ethereum/client-go:alltools-v1.10.17 as geth FROM ethereum/client-go:alltools-v1.10.17 as geth
FROM ghcr.io/foundry-rs/foundry:nightly as foundry FROM ethereumoptimism/foundry:latest as foundry
FROM python:3.8.12-slim-buster FROM python:3.8.12-slim-buster
......
from alpine as build-environment
WORKDIR /opt
RUN apk add clang lld curl build-base linux-headers git \
&& curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh \
&& chmod +x ./rustup.sh \
&& ./rustup.sh -y
WORKDIR /opt/foundry
# Only diff from upstream docker image is this clone instead
# of COPY. We select a specific commit to use.
RUN git clone https://github.com/foundry-rs/foundry.git . \
&& git checkout b7b1ec471bdd38221773e1a569dc4f20297bd7db
RUN source $HOME/.profile && cargo build --release \
&& strip /opt/foundry/target/release/forge \
&& strip /opt/foundry/target/release/cast \
&& strip /opt/foundry/target/release/anvil
from alpine as foundry-client
ENV GLIBC_KEY=https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub
ENV GLIBC_KEY_FILE=/etc/apk/keys/sgerrand.rsa.pub
ENV GLIBC_RELEASE=https://github.com/sgerrand/alpine-pkg-glibc/releases/download/2.35-r0/glibc-2.35-r0.apk
RUN apk add linux-headers gcompat
RUN wget -q -O ${GLIBC_KEY_FILE} ${GLIBC_KEY} \
&& wget -O glibc.apk ${GLIBC_RELEASE} \
&& apk add glibc.apk --force
COPY --from=build-environment /opt/foundry/target/release/forge /usr/local/bin/forge
COPY --from=build-environment /opt/foundry/target/release/cast /usr/local/bin/cast
COPY --from=build-environment /opt/foundry/target/release/anvil /usr/local/bin/anvil
ENTRYPOINT ["/bin/sh", "-c"]
{
"name": "@eth-optimism/foundry",
"version": "0.0.0",
"scripts": {},
"license": "MIT",
"dependencies": {}
}
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
"ops/docker/go-builder", "ops/docker/go-builder",
"ops/docker/js-builder", "ops/docker/js-builder",
"ops/docker/ci-builder", "ops/docker/ci-builder",
"ops/docker/foundry",
"proxyd", "proxyd",
"teleportr" "teleportr"
], ],
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment