11name : Release Observability Artifacts
22
33on :
4+ branches :
5+ - ci-release
46 workflow_dispatch :
57 inputs :
68 version :
@@ -17,110 +19,148 @@ jobs:
1719 steps :
1820 - name : Checkout code
1921 uses : actions/checkout@v4
20- - name : Set release version
21- id : version
22+ - name : Extract version from commit message
23+ id : extract
2224 run : |
23- echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
25+ COMMIT_MSG="${{ github.event.head_commit.message }}"
26+ VERSION=$(echo "$COMMIT_MSG" | grep -oE 'v[0-9]+\.[0-9]+\.[0-9]+')
27+ echo "VERSION=$VERSION" >> $GITHUB_ENV
28+
29+ # - name: Set release version
30+ # id: version
31+ # run: |
32+ # echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
2433
2534 - name : Package Grafana artifacts
2635 run : |
2736 mkdir -p release-artifacts
2837
29- # Package Grafana v1 dashboards
30- cd grafana
31- tar -czf ../release-artifacts/grafana-dashboards-v1.tar.gz dashboards/ alerts/
32- zip -r ../release-artifacts/grafana-dashboards-v1.zip dashboards/ alerts/
33- cd ..
38+ # Create combined Grafana package with both v1 and v2
39+ mkdir -p temp-grafana/v1 temp-grafana/v2
40+ cp -r grafana/dashboards grafana/alerts temp-grafana/v1/
41+ cp -r grafana_v2/dashboards grafana_v2/alerts temp-grafana/v2/
3442
35- # Package Grafana v2 dashboards
36- cd grafana_v2
37- tar -czf ../release-artifacts/grafana-dashboards-v2.tar.gz dashboards/ alerts/
38- zip -r ../release-artifacts/grafana-dashboards-v2.zip dashboards/ alerts/
43+ cd temp-grafana
44+ tar -czf ../release-artifacts/redis-grafana-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
45+ zip -r ../release-artifacts/redis-grafana-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
3946 cd ..
47+ rm -rf temp-grafana
4048
4149 - name : Package Dynatrace artifacts
4250 run : |
43- # Package Dynatrace v1
44- cd dynatrace
45- tar -czf ../release-artifacts/dynatrace-extension-v1.tar.gz src/
46- zip -r ../release-artifacts/dynatrace-extension-v1.zip src/
47- cd ..
51+ # Create combined Dynatrace package with both v1 and v2
52+ mkdir -p temp-dynatrace/v1 temp-dynatrace/v2
53+ cp -r dynatrace/src temp-dynatrace/v1/
54+ cp -r dynatrace_v2/src temp-dynatrace/v2/
4855
49- # Package Dynatrace v2
50- cd dynatrace_v2
51- tar -czf ../release-artifacts/dynatrace-extension-v2.tar.gz src/
52- zip -r ../release-artifacts/dynatrace-extension-v2.zip src/
56+ cd temp-dynatrace
57+ tar -czf ../release-artifacts/redis-dynatrace-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
58+ zip -r ../release-artifacts/redis-dynatrace-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
5359 cd ..
60+ rm -rf temp-dynatrace
5461
5562 - name : Package Prometheus artifacts
5663 run : |
57- # Package Prometheus v1 rules
58- cd prometheus
59- tar -czf ../release-artifacts/prometheus-rules-v1.tar.gz rules/
60- zip -r ../release-artifacts/prometheus-rules-v1.zip rules/
61- cd ..
64+ # Create combined Prometheus package with both v1 and v2
65+ mkdir -p temp-prometheus/v1 temp-prometheus/v2
66+ cp -r prometheus/rules temp-prometheus/v1/
67+ cp -r prometheus_v2/rules temp-prometheus/v2/
6268
63- # Package Prometheus v2 rules
64- cd prometheus_v2
65- tar -czf ../release-artifacts/prometheus-rules-v2.tar.gz rules/
66- zip -r ../release-artifacts/prometheus-rules-v2.zip rules/
69+ cd temp-prometheus
70+ tar -czf ../release-artifacts/redis-prometheus-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
71+ zip -r ../release-artifacts/redis-prometheus-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
6772 cd ..
73+ rm -rf temp-prometheus
6874
6975 - name : Package NewRelic artifacts
7076 run : |
71- # Package NewRelic v1
72- cd newrelic
73- tar -czf ../release-artifacts/newrelic-dashboards-v1.tar.gz dashboards/ config/
74- zip -r ../release-artifacts/newrelic-dashboards-v1.zip dashboards/ config/
75- cd ..
77+ # Create combined NewRelic package with both v1 and v2
78+ mkdir -p temp-newrelic/v1 temp-newrelic/v2
79+ cp -r newrelic/dashboards newrelic/config temp-newrelic/v1/
80+ cp -r newrelic_v2/dashboards newrelic_v2/config temp-newrelic/v2/
7681
77- # Package NewRelic v2
78- cd newrelic_v2
79- tar -czf ../release-artifacts/newrelic-dashboards-v2.tar.gz dashboards/ config/
80- zip -r ../release-artifacts/newrelic-dashboards-v2.zip dashboards/ config/
82+ cd temp-newrelic
83+ tar -czf ../release-artifacts/redis-newrelic-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
84+ zip -r ../release-artifacts/redis-newrelic-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
8185 cd ..
86+ rm -rf temp-newrelic
8287
8388 - name : Package Kibana artifacts
8489 run : |
85- cd kibana
86- tar -czf ../release-artifacts/kibana-dashboards.tar.gz dashboards/
87- zip -r ../release-artifacts/kibana-dashboards.zip dashboards/
90+ # Create Kibana package (single version)
91+ mkdir -p temp-kibana
92+ cp -r kibana/dashboards temp-kibana/
93+
94+ cd temp-kibana
95+ tar -czf ../release-artifacts/redis-kibana-${{ steps.version.outputs.VERSION }}.tar.gz dashboards/
96+ zip -r ../release-artifacts/redis-kibana-${{ steps.version.outputs.VERSION }}.zip dashboards/
8897 cd ..
98+ rm -rf temp-kibana
8999
90100 - name : Package Splunk artifacts
91101 run : |
92- cd splunk
93- tar -czf ../release-artifacts/splunk-dashboards.tar.gz dashboards/ config/
94- zip -r ../release-artifacts/splunk-dashboards.zip dashboards/ config/
102+ # Create Splunk package (single version)
103+ mkdir -p temp-splunk
104+ cp -r splunk/dashboards splunk/config temp-splunk/
105+
106+ cd temp-splunk
107+ tar -czf ../release-artifacts/redis-splunk-${{ steps.version.outputs.VERSION }}.tar.gz dashboards/ config/
108+ zip -r ../release-artifacts/redis-splunk-${{ steps.version.outputs.VERSION }}.zip dashboards/ config/
95109 cd ..
110+ rm -rf temp-splunk
111+
112+ - name : Package Datadog artifacts
113+ run : |
114+ # Create Datadog package (v2 only)
115+ mkdir -p temp-datadog
116+ cp -r datadog_v2/kickstarter temp-datadog/
117+
118+ cd temp-datadog
119+ tar -czf ../release-artifacts/redis-datadog-${{ steps.version.outputs.VERSION }}.tar.gz kickstarter/
120+ zip -r ../release-artifacts/redis-datadog-${{ steps.version.outputs.VERSION }}.zip kickstarter/
121+ cd ..
122+ rm -rf temp-datadog
96123
97124 - name : Generate checksums
98125 run : |
99126 cd release-artifacts
100127 sha256sum * > checksums.txt
101128
102- - name : Create release
103- uses : softprops/action-gh-release@v1
104- with :
105- tag_name : ${{ steps.version.outputs.VERSION }}
106- name : Redis Enterprise Observability ${{ steps.version.outputs.VERSION }}
107- body : |
108- ## Redis Enterprise Observability Release ${{ steps.version.outputs.VERSION }}
129+ # - name: Create release
130+ # uses: softprops/action-gh-release@v1
131+ # with:
132+ # tag_name: ${{ steps.version.outputs.VERSION }}
133+ # name: Redis Enterprise Observability ${{ steps.version.outputs.VERSION }}
134+ # body: |
135+ # ## Redis Enterprise Observability Release ${{ steps.version.outputs.VERSION }}
109136
110- This release contains dashboards and configuration files for various observability platforms:
137+ # This release contains individual platform packages for various observability platforms. Each package is versioned and contains both v1 and v2 variants where applicable :
111138
112- ### 📊 Dashboards & Configurations
113- - **Grafana v1 & v2**: Complete dashboard collections for Redis Enterprise monitoring
114- - **Dynatrace v1 & v2**: Extensions and dashboards for Dynatrace monitoring
115- - **Prometheus v1 & v2**: Alerting rules and configurations
116- - **NewRelic v1 & v2**: Dashboard collections and configurations
117- - **Kibana**: Dashboard configurations for Elasticsearch/Kibana
118- - **Splunk**: Dashboard and configuration files
139+ # ### 📊 Individual Platform Packages
140+ # - **redis-grafana-${{ steps.version.outputs.VERSION }}**: Complete dashboard collections (v1 & v2)
141+ # - **redis-dynatrace-${{ steps.version.outputs.VERSION }}**: Extensions and dashboards (v1 & v2)
142+ # - **redis-prometheus-${{ steps.version.outputs.VERSION }}**: Alerting rules and configurations (v1 & v2)
143+ # - **redis-newrelic-${{ steps.version.outputs.VERSION }}**: Dashboard collections and configurations (v1 & v2)
144+ # - **redis-kibana-${{ steps.version.outputs.VERSION }}**: Dashboard configurations for Elasticsearch/Kibana
145+ # - **redis-splunk-${{ steps.version.outputs.VERSION }}**: Dashboard and configuration files
146+ # - **redis-datadog-${{ steps.version.outputs.VERSION }}**: Datadog monitoring configurations
119147
120- For detailed setup instructions, please refer to the README files in each platform directory.
121- files : |
122- release-artifacts/*
123- draft : false
124- prerelease : false
125- env :
126- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
148+ # Each package is available in both `.tar.gz` and `.zip` formats. For detailed setup instructions, please refer to the README files in each platform directory.
149+ # files: |
150+ # release-artifacts/*
151+ # draft: false
152+ # prerelease: false
153+ # env:
154+ # GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
155+
156+ # - name: Upload individual platform packages
157+ # run: |
158+ # echo "Individual platform packages created:"
159+ # ls -la release-artifacts/
160+ # echo "Each package contains the appropriate v1 and v2 variants for the platform"
161+ - name : Upload release artifacts
162+ uses : actions/upload-artifact@v4
163+ with :
164+ name : redis-enterprise-observability-artifacts
165+ path : release-artifacts/
166+ retention-days : 30
0 commit comments