-
Notifications
You must be signed in to change notification settings - Fork 25
186 lines (166 loc) · 5.69 KB
/
build_external.yml
File metadata and controls
186 lines (166 loc) · 5.69 KB
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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
# Builds external repositories that use this so we can create tickets to update them before their ci pipelines break.
# NOTE: This is not a required check to merge, merely a check so you know to create tickets to update the products that rely on this.
name: Build External Repositories
on:
pull_request:
# Only run 1 of this workflow at a time per PR
concurrency:
group: integration-build-check-${{ github.ref }}
cancel-in-progress: true
permissions: {}
jobs:
init:
runs-on: ubuntu-latest
permissions:
contents: read
outputs:
core-ref: ${{ steps.set-git-refs.outputs.core-ref }}
solana-ref: ${{ steps.set-git-refs.outputs.solana-ref }}
starknet-ref: ${{ steps.set-git-refs.outputs.starknet-ref }}
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- name: Get refs from PR body
id: set-git-refs
uses: actions/github-script@v7
with:
script: |
const script = require('./.github/scripts/get-refs-from-pr-body.js')
await script({ github, context, core })
build-chainlink:
needs: init
environment: integration
permissions:
contents: read
id-token: write
name: Build Chainlink
runs-on: ubuntu-latest
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
steps:
- name: Checkout the chainlink-common repo
uses: actions/checkout@v4
with:
repository: smartcontractkit/chainlink-common
persist-credentials: false
path: chainlink-common
- name: Checkout the chainlink core repo
uses: actions/checkout@v4
with:
repository: smartcontractkit/chainlink
ref: ${{ needs.init.outputs.core-ref }}
persist-credentials: false
path: chainlink
- name: Setup Go
uses: ./chainlink-common/.github/actions/setup-go
with:
go-version-file: "chainlink/go.mod"
only-modules: "true"
- name: Build /chainlink
shell: bash
env:
COMMON_SHA: ${{ github.event.pull_request.head.sha }}
working-directory: chainlink
run: |
go get "github.com/smartcontractkit/chainlink-common@${COMMON_SHA}"
go mod tidy
make install-chainlink
solana-build-relay:
needs: init
environment: integration
permissions:
id-token: write
contents: read
name: Solana Build Relay
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: ubuntu-latest
steps:
- name: Checkout the solana repo
uses: actions/checkout@v4
with:
repository: smartcontractkit/chainlink-solana
ref: ${{ needs.init.outputs.solana-ref }}
- name: Setup Go
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: "go.mod"
- name: Replace chainlink-common deps
run: |
go get github.com/smartcontractkit/chainlink-common@${{ github.event.pull_request.head.sha }}
go mod tidy
- name: Install Solana CLI
run: ./scripts/install-solana-ci.sh
- name: Update mocks
run: |
make mockery
make rm-mocked
mockery
- name: Build & Test
run: make test_relay_unit
starknet-build-relay:
needs: init
environment: integration
permissions:
id-token: write
contents: read
name: Starknet Build Relay
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
runs-on: ubuntu-latest
steps:
- name: Checkout the starknet repo
uses: actions/checkout@v4
with:
repository: smartcontractkit/chainlink-starknet
ref: ${{ needs.init.outputs.starknet-ref }}
- name: Setup Go
uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
with:
go-version-file: ./relayer/go.mod
- name: Replace chainlink-common deps
run: |
cd relayer
go get github.com/smartcontractkit/chainlink-common@${{ github.event.pull_request.head.sha }}
go mod tidy
- name: Install Nix
uses: cachix/install-nix-action@8887e596b4ee1134dae06b98d573bd674693f47c # v26
with:
nix_path: nixpkgs=channel:nixos-unstable
- name: Build
run: nix develop -c make build-go-relayer
- name: Test
run: nix develop -c make test-unit-go
# terra-build-relay:
# environment: integration
# permissions:
# id-token: write
# contents: read
# name: Terra Build Relay
# runs-on: ubuntu-latest
# steps:
# - name: Checkout the terra repo
# uses: actions/checkout@v4
# with:
# repository: smartcontractkit/chainlink-terra
# - name: Setup Go
# uses: actions/setup-go@0c52d547c9bc32b1aa3301fd7a9cb496313a4491 # v5.0.0
# with:
# go-version-file: "go.mod"
# - name: Replace chainlink-common deps
# run: |
# go get github.com/smartcontractkit/chainlink-common@${{ github.event.pull_request.head.sha }}
# go mod tidy
# - name: Install Nix
# uses: cachix/install-nix-action@v14
# with:
# install_url: https://nixos-nix-install-tests.cachix.org/serve/vij683ly7sl95nnhb67bdjjfabclr85m/install
# install_options: "--tarball-url-prefix https://nixos-nix-install-tests.cachix.org/serve"
# extra_nix_config: |
# experimental-features = nix-command flakes
# access-tokens = github.com=${{ secrets.GITHUB_TOKEN }}
# - name: Compile relay
# run: nix develop -c go build -v ./pkg/terra/...
# - name: Run unit tests
# run: nix develop -c go test -v ./pkg/terra/...