-
Notifications
You must be signed in to change notification settings - Fork 44
54 lines (53 loc) · 2.24 KB
/
docker_release_cd.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
name: Docker Release CD
on:
push:
tags:
- "[v]?[0-9]+.[0-9]+.[0-9]+"
jobs:
docker_image:
name: build_pr_image
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v3
with:
submodules: recursive
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: nightly
profile: minimal
override: true
components: rustfmt
- uses: Swatinem/rust-cache@v2
- name: Setup build env
run: |
sudo apt-get install protobuf-compiler
cargo install cargo-edit
ROOT_DIR=`pwd`
TAG=${GITHUB_REF/refs\/tags\//}
VERSION=${TAG#*v}
echo ${VERSION}
cargo set-version --workspace ${VERSION}
cd ${ROOT_DIR}/metadata && yarn install && npx hardhat compile
test -e ${ROOT_DIR}/metadata/artifacts/contracts/DB3MetaStore.sol/DB3MetaStore.json && cp -f ${ROOT_DIR}/metadata/artifacts/contracts/DB3MetaStore.sol/DB3MetaStore.json ${ROOT_DIR}/abi/
test -e ${ROOT_DIR}/metadata/artifacts/contracts/libraries/Events.sol/Events.json && cp -f ${ROOT_DIR}/metadata/artifacts/contracts/libraries/Events.sol/Events.json ${ROOT_DIR}/abi/
cd ${ROOT_DIR} && cargo build --release
cp ${ROOT_DIR}/target/release/db3 ${ROOT_DIR}/docker/
cd ${ROOT_DIR}/sdk && yarn && make && yarn build && yarn link
cd ${ROOT_DIR}/thirdparty/data-manager && yarn && yarn link db3.js && yarn build && mv -f dist ${ROOT_DIR}/docker/pages
- name: docker login
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build Docker image
run: |
ROOT_DIR=`pwd`
RELEASE_NAME=${GITHUB_REF/refs\/tags\//}
cd ${ROOT_DIR}/docker && docker build . -t ghcr.io/dbpunk-labs/db3:$RELEASE_NAME
docker push ghcr.io/dbpunk-labs/db3:$RELEASE_NAME
docker tag ghcr.io/dbpunk-labs/db3:$RELEASE_NAME ghcr.io/dbpunk-labs/db3:latest
docker push ghcr.io/dbpunk-labs/db3:latest
echo "the image is ghcr.io/dbpunk-labs/db3:$RELEASE_NAME"