-
Notifications
You must be signed in to change notification settings - Fork 127
156 lines (131 loc) · 4.87 KB
/
docker-image.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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
name: Docker Image CI
on:
push:
branches: [ "add_dockerfiles", "newlance", "test_new_workflow" ]
pull_request:
branches: [ "add_dockerfiles", "newlance" ]
permissions:
contents: read
jobs:
testing:
permissions:
contents: read
runs-on: ubuntu-latest
name: Ethlance build and test
services:
ipfs-daemon:
image: district0x/ipfs-daemon:latest
postgres:
image: postgres
env:
POSTGRES_PASSWORD: pass
POSTGRES_USER: ethlanceuser
POSTGRES_DB: ethlance-test
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
steps:
- name: Checkout ethlance code
uses: actions/checkout@v4
- name: Checkout ethlance-configs repo
uses: actions/checkout@v4
with:
repository: district0x/ethlance-config
path: ethlance-config
token: ${{ secrets.ETHLANCE_CONFIG_PAT }}
ref: docker_build
- name: Copy configs
run: |
cp -r ethlance-config/config .
ls -lah config/
- name: Copy configs
run: |
cp -r ethlance-config/config .
ls -lah config/
- name: Run ganache service
run: |
docker run --rm -d --name ganache trufflesuite/ganache:v7.9.1 -v -m "easy leave proof verb wait patient fringe laptop intact opera slab shine" -p 8550 -b 0.5 --chain.allowUnlimitedContractSize=true
- name: Get yarn cache directory for top-level ethlance packages
id: yarn-cache-top-level-path
run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Get yarn cache directory for ethlance Server packages
id: yarn-cache-server-path
run: |
cd server
echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
- name: Get yarn cache directory for ethlance UI packages
id: yarn-cache-ui-path
run: |
cd server
echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT
cd ..
- name: Restore Top level cache directory for Ethlance
uses: actions/cache@v3
id: yarn-cache-top-level # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-top-level-path.outputs.dir }}
key: ${{ runner.os }}-ethlance-top-level-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-ethlance-top-level-yarn-
- name: Install ethlance top-level node modules
run: |
yarn install
- name: Restore server cache directory for Ethlance
uses: actions/cache@v3
id: yarn-cache-server # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-server-path.outputs.dir }}
key: ${{ runner.os }}-ethlance-server-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-ethlance-server-yarn-
- name: Install ethlance server node modules
run: |
cd server && yarn install
# docker_build:
# strategy:
# matrix:
# image: ["server", "ui"]
# env: ["qa"]
# permissions:
# contents: read
# name: Docker Build
# runs-on: ubuntu-latest
# steps:
# - name: Checkout ethlance code
# uses: actions/checkout@v4
# - name: Checkout ethlance-configs repo
# uses: actions/checkout@v4
# with:
# repository: district0x/ethlance-config
# path: ethlance-config
# token: ${{ secrets.ETHLANCE_CONFIG_PAT }}
# ref: docker_build
# - name: Copy configs
# run: |
# cp -r ethlance-config/config .
# ls -lah config/
# - name: Set up QEMU
# uses: docker/setup-qemu-action@v2
# - name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v2
# - name: Configure AWS Credentials
# uses: aws-actions/configure-aws-credentials@v4
# with:
# aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
# aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
# aws-region: ${{ secrets.AWS_DEFAULT_REGION }}
# - name: Login to Amazon ECR
# id: login-ecr
# uses: aws-actions/amazon-ecr-login@v2
# - name: Build and push
# uses: docker/build-push-action@v4
# with:
# context: .
# platforms: linux/amd64,linux/arm64
# file: docker-builds/${{ matrix.image }}/Dockerfile
# build-args: BUILD_ENV=${{ matrix.env }}
# push: true
# tags: ${{ secrets.ECR_REGISTRY }}/ethlance-${{ matrix.image }}:latest-${{ matrix.env }}