-
Notifications
You must be signed in to change notification settings - Fork 151
138 lines (129 loc) · 4.2 KB
/
ci.yaml
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
name: CI
on:
push:
tags:
- 'v[0-9]+(\.[0-9]+)*(-.*)*'
pull_request:
branches:
- '**'
permissions:
contents: read
id-token: write
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: 1.21.8
- run: make test
build:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-go@v4
with:
go-version: 1.21.8
- name: Install go-bindata
run: go install github.com/go-bindata/go-bindata/...@latest
- run: make LINUX_PACKAGE_GOARCH=amd64 build-linux
- run: make LINUX_PACKAGE_GOARCH=arm64 build-linux
- run: make build-win
- run: make build-darwin
- run: make build-bsd
- name: Upload artifacts
uses: actions/upload-artifact@v3
with:
name: build-artifacts
path: |
carbon-relay-ng
carbon-relay-ng.exe
carbon-relay-ng-darwin
carbon-relay-ng-linux-amd64
carbon-relay-ng-linux-arm64
carbon-relay-ng-bsd
package:
needs: build
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
- name: Install FPM and dependencies
run: |
sudo apt-get update
sudo apt-get install rpm
gem install fpm
- name: Download build artifacts
uses: actions/download-artifact@v3
with:
name: build-artifacts
- name: Make packages
run: make packages
- name: Build Docker image
run: |
make docker
docker save -o build/carbon-relay-ng.tar grafana/carbon-relay-ng
- name: Store version
run: git describe --tags --always | sed 's/^v//' > build/version.txt
- name: Upload package artifacts
uses: actions/upload-artifact@v3
with:
name: package-artifacts
path: build
deploy:
needs: package
runs-on: ubuntu-latest
# TODO: testing in PR
# if: github.ref == 'refs/heads/master'
steps:
- uses: actions/checkout@v3
- name: Download package artifacts
uses: actions/download-artifact@v3
with:
name: package-artifacts
- uses: ruby/setup-ruby@v1
with:
ruby-version: 3.3
- name: Install package_cloud
run: gem install package_cloud
- name: Set PACKAGECLOUD_TOKEN
uses: grafana/shared-workflows/actions/get-vault-secrets@main
with:
repo_secrets: |
PACKAGECLOUD_TOKEN=packagecloud:token
- name: Push packages
run: |
version=$(cat build/version.txt)
repo=raintank/raintank
[[ "$version" == *-* ]] && repo=raintank/testing
repo=raintank/testing # TODO
package_cloud push $repo/ubuntu/trusty build/deb-upstart/carbon-relay-ng-*.deb
package_cloud push $repo/ubuntu/xenial build/deb-systemd/carbon-relay-ng-*.deb
package_cloud push $repo/debian/jessie build/deb-systemd/carbon-relay-ng-*.deb
package_cloud push $repo/debian/stretch build/deb-systemd/carbon-relay-ng-*.deb
package_cloud push $repo/debian/buster build/deb-systemd/carbon-relay-ng-*.deb
package_cloud push $repo/el/6 build/centos-6/carbon-relay-ng-*.el6.*.rpm
package_cloud push $repo/el/7 build/centos-7/carbon-relay-ng-*.el7.*.rpm
- name: Load Docker image
run: docker load -i build/carbon-relay-ng.tar
- name: Push Docker image
run: |
docker login -u ${{ secrets.DOCKER_USER }} -p ${{ secrets.DOCKER_KEY }}
version=$(cat build/version.txt)
docker push grafana/carbon-relay-ng:$version
tag=latest
[[ "$version" == *-* ]] && tag=master
docker push grafana/carbon-relay-ng:$tag
github_binaries:
needs: deploy
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Run goreleaser
# TODO: currently dry running
run: curl -sfL https://goreleaser.com/static/run | bash -s -- --clean --skip-publish --snapshot