Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
N
nebula
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
exchain
nebula
Commits
f09accb1
Unverified
Commit
f09accb1
authored
Jun 16, 2023
by
OptimismBot
Committed by
GitHub
Jun 16, 2023
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #6034 from ethereum-optimism/fix/ops-scripts
ops: bring back scripts
parents
d9cf6179
2529cc0b
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
201 additions
and
0 deletions
+201
-0
Dockerfile
ops/docker/ci-builder/Dockerfile
+107
-0
ci-docker-tag-op-stack-release.sh
ops/scripts/ci-docker-tag-op-stack-release.sh
+45
-0
ci-versions.js
ops/scripts/ci-versions.js
+13
-0
update-op-geth.py
ops/scripts/update-op-geth.py
+36
-0
No files found.
ops/docker/ci-builder/Dockerfile
0 → 100644
View file @
f09accb1
FROM
debian:bullseye-20220822-slim as foundry-build
SHELL
["/bin/bash", "-c"]
WORKDIR
/opt
ENV
DEBIAN_FRONTEND=noninteractive
RUN
apt-get update
&&
\
apt-get
install
-y
curl build-essential 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 da2392e58bb8a7fefeba46b40c4df1afad8ccd22
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
ethereum/client-go:alltools-v1.10.25 as geth
FROM
ghcr.io/crytic/echidna/echidna:v2.0.4 as echidna-test
FROM
python:3.8.13-slim-bullseye
ENV
GOPATH=/go
ENV
PATH=/usr/local/go/bin:$GOPATH/bin:$PATH
ENV
DEBIAN_FRONTEND=noninteractive
COPY
--from=foundry-build /opt/foundry/target/release/forge /usr/local/bin/forge
COPY
--from=foundry-build /opt/foundry/target/release/cast /usr/local/bin/cast
COPY
--from=foundry-build /opt/foundry/target/release/anvil /usr/local/bin/anvil
COPY
--from=geth /usr/local/bin/abigen /usr/local/bin/abigen
COPY
--from=echidna-test /usr/local/bin/echidna-test /usr/local/bin/echidna-test
COPY
check-changed.sh /usr/local/bin/check-changed
RUN
apt-get update
&&
\
apt-get
install
-y
bash curl openssh-client git build-essential ca-certificates jq musl gnupg coreutils
&&
\
curl
-sL
https://deb.nodesource.com/setup_16.x
-o
nodesource_setup.sh
&&
\
curl
-sL
https://go.dev/dl/go1.19.linux-amd64.tar.gz
-o
go1.19.linux-amd64.tar.gz
&&
\
tar
-C
/usr/local/
-xzvf
go1.19.linux-amd64.tar.gz
&&
\
ln
-s
/usr/local/go/bin/gofmt /usr/local/bin/gofmt
&&
\
bash nodesource_setup.sh
&&
\
apt-get
install
-y
nodejs
&&
\
npm i
-g
npm@8.11.0
\
npm i
-g
yarn
&&
\
npm i
-g
depcheck
&&
\
pip
install
slither-analyzer
==
0.9.1
&&
\
go
install
gotest.tools/gotestsum@latest
&&
\
curl
-sSfL
https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh
-s
--
-b
$(
go
env
GOPATH
)
/bin v1.48.0
&&
\
curl
-fLSs
https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | bash
&&
\
chmod
+x /usr/local/bin/check-changed
RUN
echo
"downloading solidity compilers"
&&
\
curl
-o
solc-linux-amd64-v0.5.17+commit.d19bba13
-sL
https://binaries.soliditylang.org/linux-amd64/solc-linux-amd64-v0.5.17+commit.d19bba13
&&
\
curl
-o
solc-linux-amd64-v0.8.9+commit.e5eed63a
-sL
https://binaries.soliditylang.org/linux-amd64/solc-linux-amd64-v0.8.9+commit.e5eed63a
&&
\
curl
-o
solc-linux-amd64-v0.8.10+commit.fc410830
-sL
https://binaries.soliditylang.org/linux-amd64/solc-linux-amd64-v0.8.10+commit.fc410830
&&
\
curl
-o
solc-linux-amd64-v0.8.12+commit.f00d7308
-sL
https://binaries.soliditylang.org/linux-amd64/solc-linux-amd64-v0.8.12+commit.f00d7308
&&
\
echo
"verifying checksums"
&&
\
(
echo
"c35ce7a4d3ffa5747c178b1e24c8541b2e5d8a82c1db3719eb4433a1f19e16f3 solc-linux-amd64-v0.5.17+commit.d19bba13"
|
sha256sum
--check
--status
-
||
exit
1
)
&&
\
(
echo
"f851f11fad37496baabaf8d6cb5c057ca0d9754fddb7a351ab580d7fd728cb94 solc-linux-amd64-v0.8.9+commit.e5eed63a"
|
sha256sum
--check
--status
-
||
exit
1
)
&&
\
(
echo
"c7effacf28b9d64495f81b75228fbf4266ac0ec87e8f1adc489ddd8a4dd06d89 solc-linux-amd64-v0.8.10+commit.fc410830"
|
sha256sum
--check
--status
-
||
exit
1
)
&&
\
(
echo
"556c3ec44faf8ff6b67933fa8a8a403abe82c978d6e581dbfec4bd07360bfbf3 solc-linux-amd64-v0.8.12+commit.f00d7308"
|
sha256sum
--check
--status
-
||
exit
1
)
&&
\
echo
"caching compilers"
&&
\
mkdir
-p
~/.cache/hardhat-nodejs/compilers/linux-amd64
&&
\
cp
solc-linux-amd64-v0.5.17+commit.d19bba13 ~/.cache/hardhat-nodejs/compilers/linux-amd64/
&&
\
cp
solc-linux-amd64-v0.8.9+commit.e5eed63a ~/.cache/hardhat-nodejs/compilers/linux-amd64/
&&
\
cp
solc-linux-amd64-v0.8.10+commit.fc410830 ~/.cache/hardhat-nodejs/compilers/linux-amd64/
&&
\
cp
solc-linux-amd64-v0.8.12+commit.f00d7308 ~/.cache/hardhat-nodejs/compilers/linux-amd64/
&&
\
mkdir
-p
~/.svm/0.5.17
&&
\
cp
solc-linux-amd64-v0.5.17+commit.d19bba13 ~/.svm/0.5.17/solc-0.5.17
&&
\
mkdir
-p
~/.svm/0.8.9
&&
\
cp
solc-linux-amd64-v0.8.9+commit.e5eed63a ~/.svm/0.8.9/solc-0.8.9
&&
\
mkdir
-p
~/.svm/0.8.10
&&
\
cp
solc-linux-amd64-v0.8.10+commit.fc410830 ~/.svm/0.8.10/solc-0.8.10
&&
\
mkdir
-p
~/.svm/0.8.12
&&
\
cp
solc-linux-amd64-v0.8.12+commit.f00d7308 ~/.svm/0.8.12/solc-0.8.12
&&
\
rm
solc-linux-amd64-v0.5.17+commit.d19bba13
&&
\
rm
solc-linux-amd64-v0.8.9+commit.e5eed63a
&&
\
rm
solc-linux-amd64-v0.8.10+commit.fc410830
&&
\
rm
solc-linux-amd64-v0.8.12+commit.f00d7308
RUN
echo
"downloading and verifying Codecov uploader"
&&
\
curl https://keybase.io/codecovsecurity/pgp_keys.asc | gpg
--no-default-keyring
--keyring
trustedkeys.gpg
--import
&&
\
curl
-Os
"https://uploader.codecov.io/latest/linux/codecov"
&&
\
curl
-Os
"https://uploader.codecov.io/latest/linux/codecov.SHA256SUM"
&&
\
curl
-Os
"https://uploader.codecov.io/latest/linux/codecov.SHA256SUM.sig"
&&
\
gpgv codecov.SHA256SUM.sig codecov.SHA256SUM
&&
\
shasum
-a
256
-c
codecov.SHA256SUM
||
sha256sum
-c
codecov.SHA256SUM
&&
\
cp
codecov /usr/local/bin/codecov
&&
\
chmod
+x /usr/local/bin/codecov
&&
\
rm
codecov
RUN
echo
"downloading mockery tool"
&&
\
mkdir
-p
mockery-tmp-dir
&&
\
curl
-o
mockery-tmp-dir/mockery.tar.gz
-sL
https://github.com/vektra/mockery/releases/download/v2.28.1/mockery_2.28.1_Linux_x86_64.tar.gz
&&
\
tar
-xzvf
mockery-tmp-dir/mockery.tar.gz
-C
mockery-tmp-dir
&&
\
cp
mockery-tmp-dir/mockery /usr/local/bin/mockery
&&
\
chmod
+x /usr/local/bin/mockery
&&
\
rm
-rf
mockery-tmp-dir
ops/scripts/ci-docker-tag-op-stack-release.sh
0 → 100644
View file @
f09accb1
#!/usr/bin/env bash
set
-euo
pipefail
DOCKER_REPO
=
$1
GIT_TAG
=
$2
GIT_SHA
=
$3
IMAGE_NAME
=
$(
echo
"
$GIT_TAG
"
|
grep
-Eow
'^(fault-detector|proxyd|indexer|op-[a-z0-9\-]*)'
||
true
)
if
[
-z
"
$IMAGE_NAME
"
]
;
then
echo
"image name could not be parsed from git tag '
$GIT_TAG
'"
exit
1
fi
IMAGE_TAG
=
$(
echo
"
$GIT_TAG
"
|
grep
-Eow
'v.*'
||
true
)
if
[
-z
"
$IMAGE_TAG
"
]
;
then
echo
"image tag could not be parsed from git tag '
$GIT_TAG
'"
exit
1
fi
SOURCE_IMAGE_TAG
=
"
$DOCKER_REPO
/
$IMAGE_NAME
:
$GIT_SHA
"
TARGET_IMAGE_TAG
=
"
$DOCKER_REPO
/
$IMAGE_NAME
:
$IMAGE_TAG
"
TARGET_IMAGE_TAG_LATEST
=
"
$DOCKER_REPO
/
$IMAGE_NAME
:latest"
echo
"Checking if docker images exist for '
$IMAGE_NAME
'"
echo
""
tags
=
$(
gcloud container images list-tags
"
$DOCKER_REPO
/
$IMAGE_NAME
"
--limit
1
--format
json
)
if
[
"
$tags
"
=
"[]"
]
;
then
echo
"No existing docker images were found for '
$IMAGE_NAME
'. The code tagged with '
$GIT_TAG
' may not have an associated dockerfile or docker build job."
echo
"If this service has a dockerfile, add a docker-publish job for it in the circleci config."
echo
""
echo
"Exiting"
exit
0
fi
echo
"Tagging
$SOURCE_IMAGE_TAG
with '
$IMAGE_TAG
'"
gcloud container images add-tag
-q
"
$SOURCE_IMAGE_TAG
"
"
$TARGET_IMAGE_TAG
"
# Do not tag with latest if the release is a release candidate.
if
[[
"
$IMAGE_TAG
"
==
*
"rc"
*
]]
;
then
echo
"Not tagging with 'latest' because the release is a release candidate."
exit
0
fi
echo
"Tagging
$SOURCE_IMAGE_TAG
with 'latest'"
gcloud container images add-tag
-q
"
$SOURCE_IMAGE_TAG
"
"
$TARGET_IMAGE_TAG_LATEST
"
ops/scripts/ci-versions.js
0 → 100644
View file @
f09accb1
const
os
=
require
(
'
os
'
)
// this script unbundles the published packages output
// from changesets action to a key-value pair to be used
// with our publishing CI workflow
data
=
process
.
argv
[
2
]
data
=
JSON
.
parse
(
data
)
for
(
const
i
of
data
)
{
const
name
=
i
.
name
.
replace
(
"
@eth-optimism/
"
,
""
)
const
version
=
i
.
version
process
.
stdout
.
write
(
`::set-output name=
${
name
}
::
${
version
}
`
+
os
.
EOL
)
}
ops/scripts/update-op-geth.py
0 → 100644
View file @
f09accb1
#!/usr/bin/env python3
import
json
import
subprocess
import
os
GETH_VERSION
=
'v1.11.2'
def
main
():
for
project
in
(
'.'
,
'indexer'
):
print
(
f
'Updating {project}...'
)
update_mod
(
project
)
def
update_mod
(
project
):
print
(
'Replacing...'
)
subprocess
.
run
([
'go'
,
'mod'
,
'edit'
,
'-replace'
,
f
'github.com/ethereum/go-ethereum@{GETH_VERSION}=github.com/ethereum-optimism/op-geth@optimism'
],
cwd
=
os
.
path
.
join
(
project
),
check
=
True
)
print
(
'Tidying...'
)
subprocess
.
run
([
'go'
,
'mod'
,
'tidy'
],
cwd
=
os
.
path
.
join
(
project
),
check
=
True
)
if
__name__
==
'__main__'
:
main
()
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment