-
Notifications
You must be signed in to change notification settings - Fork 57
154 lines (132 loc) · 4.42 KB
/
nightly.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
name: Nightly Builds
on:
push:
branches:
- 'nightly*'
workflow_dispatch:
inputs:
channel:
description: electron.builder channel
required: true
default: alpha
type: choice
options:
- alpha
- beta
# schedule:
# - cron: '0 0 * * *' # every day at midnight
# filters:
# branches:
# include:
# - 'nightly-ci-test'
permissions:
actions: 'write'
packages: 'write'
contents: 'write'
jobs:
build:
runs-on: 'macos-14'
steps:
- name: Install Go
uses: actions/setup-go@v4
with:
go-version: 1.23.2
check-latest: true
- name: Setup GO
run: |
go version
echo GOPATH=$(go env GOPATH) >> $GITHUB_ENV
echo GOBIN=$(go env GOPATH)/bin >> $GITHUB_ENV
echo $(go env GOPATH)/bin >> $GITHUB_PATH
- name: Checkout
uses: actions/checkout@v3
- name: Install brew and node deps
run: make install-brew-and-node-deps
- name: Nightly mode env settings
shell: bash
run: |
# choice channel name {{
if [[ -z "${{ github.event.inputs.channel }}" ]]; then
# choice default value for channel from ref name
if echo "${{ github.ref_name }}" | grep -q "beta"; then
CHANNEL="beta"
else
CHANNEL="alpha"
fi
else
CHANNEL="${{github.event.inputs.channel}}"
fi
echo "CHANNEL=$CHANNEL" >> $GITHUB_ENV
# }}
# choice s3 bucket for publishing {{
if [[ "$CHANNEL" == "beta" ]]; then
S3_BUCKET="${{secrets.NIGHTLY_AWS_S3_BUCKET_BETA}}"
else
S3_BUCKET="${{secrets.NIGHTLY_AWS_S3_BUCKET}}"
fi
echo "S3_BUCKET=$S3_BUCKET" >> $GITHUB_ENV
# }}
- name: Set env vars
env:
UNSPLASH_KEY: ${{ secrets.UNSPLASH_KEY }}
INHOUSE_KEY: ${{ secrets.INHOUSE_KEY }}
run: |
GIT_SUMMARY=$(git describe --tags --always)
echo "FLAGS=-X github.com/anyproto/anytype-heart/util/vcs.GitSummary=${GIT_SUMMARY} -X github.com/anyproto/anytype-heart/metrics.DefaultInHouseKey=${INHOUSE_KEY} -X github.com/anyproto/anytype-heart/util/unsplash.DefaultToken=${UNSPLASH_KEY}" >> $GITHUB_ENV
VERSION="nightly"
echo "${{ secrets.STAGING_NODE_CONF }}" > ./core/anytype/config/nodes/custom.yml
echo BUILD_TAG_NETWORK=envnetworkcustom >> $GITHUB_ENV
echo VERSION=${VERSION} >> $GITHUB_ENV
echo GOPRIVATE=github.com/anyproto >> $GITHUB_ENV
echo $(pwd)/deps >> $GITHUB_PATH
git config --global url."https://${{ secrets.ANYTYPE_PAT }}@github.com/".insteadOf "https://github.com/"
- name: Go mod download
run: go mod download
- name: install protoc
run: make setup-protoc
- name: setup go
run: |
make setup-go
make setup-gomobile
which gomobile
- name: Cross-compile library mac/win/linux
run: |
make cross-compile-library
ls -lha .
- name: Make JS protos
run: |
make protos-js
make ci-js-protos
- name: Add system relations/types jsons
run: make ci-add-system-relations-types-jsons
- name: Pack servers
run: make pack-server
- name: Make swift protos
run: make swift-protos
- name: Compile ios lib
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GITHUB_USER: ${{ github.actor }}
PUBLISH_GRADLE: 0
run: make compile-ios-lib
- name: Make java protos
run: make ci-java-protos
- name: Compile android lib
run: make compile-android-lib
# upload release artifacts to s3 {{
- name: Install AWS CLI
run: |
if ! which aws; then
brew install awscli
fi
aws --version
- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.NIGHTLY_AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.NIGHTLY_AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.NIGHTLY_AWS_REGION }}
- name: Upload build artifacts to S3
run: |
aws s3 cp .release/ s3://${{ env.S3_BUCKET }}/mw/ --recursive --acl public-read
# }}