-
Notifications
You must be signed in to change notification settings - Fork 5
130 lines (129 loc) · 4.68 KB
/
main.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
name: CI
on:
push:
jobs:
build:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- name: Test
run: go test -v ./...
- name: Build
run: |
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION="$(echo $GITHUB_REF | sed -e 's:refs/tags/::')"
else
VERSION=0.0.0
fi &&\
mkdir -p build &&\
gobuild() {
echo building "${1} ${2}..." &&\
if [ "${1}" == "windows" ]; then
EXT=".exe"
else
EXT=""
fi &&\
GOOS=$1 GOARCH=$2 CGO_ENABLED=0 go build -ldflags "-X main.Version=${VERSION}" -o "build/terraform-provider-kamatera-${VERSION}-${1}-${2}${EXT}" &&\
pushd build &&\
zip "terraform-provider-kamatera-${VERSION}-${1}-${2}.zip" "terraform-provider-kamatera-${VERSION}-${1}-${2}${EXT}" &&\
rm -f "terraform-provider-kamatera-${VERSION}-${1}-${2}${EXT}" &&\
popd
} &&\
gobuild darwin amd64 &&\
gobuild freebsd 386 &&\
gobuild freebsd amd64 &&\
gobuild freebsd arm &&\
gobuild linux 386 &&\
gobuild linux amd64 &&\
gobuild linux arm &&\
gobuild openbsd 386 &&\
gobuild openbsd amd64 &&\
gobuild solaris amd64 &&\
gobuild windows 386 &&\
gobuild windows amd64
- uses: actions/upload-artifact@v1
if: always()
with:
name: build
path: build
# integration-test:
# runs-on: ubuntu-18.04
# steps:
# - uses: actions/checkout@v2
# - env:
# KAMATERA_API_CLIENT_ID: ${{ secrets.KAMATERA_API_CLIENT_ID }}
# KAMATERA_API_SECRET: ${{ secrets.KAMATERA_API_SECRET }}
# run: |
# if [[ $GITHUB_REF == refs/tags/* ]]; then
# VERSION="$(echo $GITHUB_REF | sed -e 's:refs/tags/::')"
# else
# VERSION=0.0.0
# fi &&\
# make build &&\
# curl -sSL https://releases.hashicorp.com/terraform/0.14.10/terraform_0.14.10_linux_amd64.zip -o terraform.zip &&\
# unzip terraform.zip &&\
# curl -sSL https://cloudcli.cloudwm.com/binaries/latest/cloudcli-linux-amd64.tar.gz -o cloudcli.tar.gz &&\
# tar -xzvf cloudcli.tar.gz &&\
# chmod +x terraform cloudcli &&\
# export PATH=`pwd`:$PATH &&\
# echo "provider_installation { \
# filesystem_mirror { \
# path = \"$HOME/.terraform.d/plugins_local\" \
# include = [\"registry.terraform.io/kamatera/kamatera\"] \
# } \
# }" > ~/.terraformrc &&\
# python3 test/e2e_test.py
# - uses: actions/upload-artifact@v1
# if: always()
# with:
# name: tests_output
# path: tests/output
# publish:
# runs-on: ubuntu-18.04
# needs:
# - build
# - integration-test
# steps:
# - uses: actions/download-artifact@v1
# with:
# name: build
# - env:
# KAMATERA_MACHINE_USER_TOKEN: ${{ secrets.KAMATERA_MACHINE_USER_TOKEN }}
# run: |
# if [[ $GITHUB_REF == refs/tags/* ]]; then
# VERSION="$(echo $GITHUB_REF | sed -e 's:refs/tags/::')" &&\
# RELEASE_ID="$(curl -sL https://api.github.com/repos/Kamatera/terraform-provider-kamatera/releases/tags/${VERSION} | jq -r .id)" &&\
# echo uploading binaries to release RELEASE_ID=$RELEASE_ID &&\
# cd build &&\
# for FILE in `ls *.zip`; do
# if [ "$(curl -H "Authorization: token $KAMATERA_MACHINE_USER_TOKEN" \
# -H "Content-Type: $(file -b --mime-type $FILE)" \
# --data-binary @$FILE \
# "https://uploads.github.com/repos/Kamatera/terraform-provider-kamatera/releases/${RELEASE_ID}/assets?name=$(basename $FILE)" | tee /dev/stderr | jq -r .state)" == "uploaded" ]; then
# echo Release asset $FILE uploaded successfuly
# else
# echo Failed to upload release asset $FILE
# exit 1
# fi
# done
# fi
coverage:
runs-on: ubuntu-latest
steps:
- name: Install Go
if: success()
uses: actions/setup-go@v2
with:
go-version: 1.16.x
- name: Checkout code
uses: actions/checkout@v2
- name: Calc coverage
run: |
go test -v -covermode=count -coverprofile=coverage.out ./...
- name: Convert coverage.out to coverage.lcov
uses: jandelgado/[email protected]
- name: Coveralls
uses: coverallsapp/[email protected]
with:
github-token: ${{ secrets.github_token }}
path-to-lcov: coverage.lcov