forked from scaleway/terraform-provider-scaleway
-
Notifications
You must be signed in to change notification settings - Fork 0
109 lines (106 loc) · 3.25 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
name: Nightly Acceptance Tests
on:
schedule:
# Will run at 00:00 every day
- cron: "0 0 * * *"
jobs:
nightly:
strategy:
fail-fast: false
matrix:
products:
- account
- applesilicon
- az
- baremetal
- billing
- block
- cockpit
- container
- domain
- flexibleip
- function
- iam
- instance
- iot
- ipam
- jobs
- k8s
- lb
- marketplace
- mnq
- object
- rdb
- redis
- registry
- sdb
- secret
- tem
- vpc
- vpcgw
- webhosting
runs-on: ubuntu-latest
steps:
# Checkout should always be before setup-go to ensure caching is working
- name: Checkout
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Run Acceptance Tests
run: go test -v ./internal/services/${{ matrix.products }} -timeout=4h
env:
TF_LOG: DEBUG
# https://www.terraform.io/docs/extend/testing/acceptance-tests/index.html#running-acceptance-tests
TF_ACC: 1
# Enable recording with the cassette system. By doing so, we ensure that real HTTPS requests are made.
TF_UPDATE_CASSETTES: true
TF_TEST_DOMAIN: scaleway-terraform.com
TF_TEST_DOMAIN_ZONE: tf
SCW_DEBUG: 1
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }}
SCW_DEFAULT_PROJECT_ID: ${{ secrets.SCW_DEFAULT_PROJECT_ID }}
- name: Ping on failure
if: ${{ failure() }}
run: |
curl -X POST -H 'Content-type: application/json' \
--data '{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "'"Terraform Nightly workflow failed: <https://github.com/scaleway/terraform-provider-scaleway/actions/runs/${GITHUB_RUN_ID}|${FAILED_PRODUCT}>"'"
}
}
]
}' \
${SLACK_WEBHOOK_NIGHTLY};
env:
SLACK_WEBHOOK_NIGHTLY: ${{ secrets.SLACK_WEBHOOK_NIGHTLY }}
FAILED_PRODUCT: ${{ matrix.products }}
# sweeper needs to run after nightly completed
# no matter what are the results of the jobs
sweeper:
runs-on: ubuntu-latest
needs: nightly
if: always()
steps:
# Checkout should always be before setup-go to ensure caching is working
- name: Checkout
uses: actions/checkout@v4
- name: Install Go
uses: actions/setup-go@v5
with:
go-version: 1.22
- name: Run sweepers
run: make sweep
env:
TF_TEST_DOMAIN: scaleway-terraform.com
SCW_ACCESS_KEY: ${{ secrets.SCW_ACCESS_KEY }}
SCW_SECRET_KEY: ${{ secrets.SCW_SECRET_KEY }}
SCW_DEFAULT_ORGANIZATION_ID: ${{ secrets.SCW_DEFAULT_ORGANIZATION_ID }}
SCW_DEFAULT_PROJECT_ID: ${{ secrets.SCW_DEFAULT_PROJECT_ID }}