Skip to content

Commit 90ab71a

Browse files
authored
Merge pull request #56 from redis-field-engineering/ci-release
GitHub Packaging and Release
2 parents d06527e + 85cb5c6 commit 90ab71a

File tree

1 file changed

+133
-0
lines changed

1 file changed

+133
-0
lines changed

.github/workflows/release.yml

Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
name: Release Observability Artifacts
2+
3+
on:
4+
workflow_dispatch:
5+
inputs:
6+
version:
7+
description: 'Release version (e.g., v1.0.0)'
8+
required: true
9+
type: string
10+
11+
12+
jobs:
13+
release:
14+
runs-on: ubuntu-latest
15+
permissions:
16+
contents: write
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Set release version
23+
id: version
24+
run: |
25+
echo "VERSION=${{ github.event.inputs.version }}" >> $GITHUB_OUTPUT
26+
27+
- name: Package Grafana artifacts
28+
run: |
29+
mkdir -p release-artifacts
30+
31+
# Create combined Grafana package with both v1 and v2
32+
mkdir -p temp-grafana/v1 temp-grafana/v2
33+
cp -r grafana/dashboards grafana/alerts temp-grafana/v1/
34+
cp -r grafana_v2/dashboards grafana_v2/alerts temp-grafana/v2/
35+
36+
cd temp-grafana
37+
tar -czf ../release-artifacts/redis-grafana-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
38+
zip -r ../release-artifacts/redis-grafana-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
39+
cd ..
40+
rm -rf temp-grafana
41+
42+
- name: Package Dynatrace artifacts
43+
run: |
44+
# Create combined Dynatrace package with both v1 and v2
45+
mkdir -p temp-dynatrace/v1 temp-dynatrace/v2
46+
cp -r dynatrace/src temp-dynatrace/v1/
47+
cp -r dynatrace_v2/src temp-dynatrace/v2/
48+
49+
cd temp-dynatrace
50+
tar -czf ../release-artifacts/redis-dynatrace-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
51+
zip -r ../release-artifacts/redis-dynatrace-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
52+
cd ..
53+
rm -rf temp-dynatrace
54+
55+
- name: Package Prometheus artifacts
56+
run: |
57+
# Create combined Prometheus package with both v1 and v2
58+
mkdir -p temp-prometheus/v1 temp-prometheus/v2
59+
cp -r prometheus/rules temp-prometheus/v1/
60+
cp -r prometheus_v2/rules temp-prometheus/v2/
61+
62+
cd temp-prometheus
63+
tar -czf ../release-artifacts/redis-prometheus-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
64+
zip -r ../release-artifacts/redis-prometheus-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
65+
cd ..
66+
rm -rf temp-prometheus
67+
68+
- name: Package NewRelic artifacts
69+
run: |
70+
# Create combined NewRelic package with both v1 and v2
71+
mkdir -p temp-newrelic/v1 temp-newrelic/v2
72+
cp -r newrelic/dashboards newrelic/config temp-newrelic/v1/
73+
cp -r newrelic_v2/dashboards newrelic_v2/config temp-newrelic/v2/
74+
75+
cd temp-newrelic
76+
tar -czf ../release-artifacts/redis-newrelic-${{ steps.version.outputs.VERSION }}.tar.gz v1/ v2/
77+
zip -r ../release-artifacts/redis-newrelic-${{ steps.version.outputs.VERSION }}.zip v1/ v2/
78+
cd ..
79+
rm -rf temp-newrelic
80+
81+
- name: Package Datadog artifacts
82+
run: |
83+
# Create Datadog package (v2 only)
84+
mkdir -p temp-datadog
85+
cp -r datadog_v2/kickstarter temp-datadog/
86+
87+
cd temp-datadog
88+
tar -czf ../release-artifacts/redis-datadog-${{ steps.version.outputs.VERSION }}.tar.gz kickstarter/
89+
zip -r ../release-artifacts/redis-datadog-${{ steps.version.outputs.VERSION }}.zip kickstarter/
90+
cd ..
91+
rm -rf temp-datadog
92+
93+
- name: Generate checksums
94+
run: |
95+
cd release-artifacts
96+
sha256sum * > checksums.txt
97+
98+
- name: Create release
99+
uses: softprops/action-gh-release@v1
100+
with:
101+
tag_name: ${{ steps.version.outputs.VERSION }}
102+
name: Redis Enterprise Observability ${{ steps.version.outputs.VERSION }}
103+
body: |
104+
## Redis Enterprise Observability Release ${{ steps.version.outputs.VERSION }}
105+
106+
This release contains individual platform packages for various observability platforms. Each package is versioned and contains both v1 and v2 variants where applicable:
107+
108+
### 📊 Individual Platform Packages
109+
- **redis-grafana-${{ steps.version.outputs.VERSION }}**: Complete dashboard collections (v1 & v2)
110+
- **redis-dynatrace-${{ steps.version.outputs.VERSION }}**: Extensions and dashboards (v1 & v2)
111+
- **redis-prometheus-${{ steps.version.outputs.VERSION }}**: Alerting rules and configurations (v1 & v2)
112+
- **redis-newrelic-${{ steps.version.outputs.VERSION }}**: Dashboard collections and configurations (v1 & v2)
113+
- **redis-datadog-${{ steps.version.outputs.VERSION }}**: Datadog monitoring configurations
114+
115+
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.
116+
files: |
117+
release-artifacts/*
118+
draft: false
119+
prerelease: false
120+
env:
121+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
122+
123+
- name: Upload individual platform packages
124+
run: |
125+
echo "Individual platform packages created:"
126+
ls -la release-artifacts/
127+
echo "Each package contains the appropriate v1 and v2 variants for the platform"
128+
- name: Upload release artifacts
129+
uses: actions/upload-artifact@v4
130+
with:
131+
name: redis-enterprise-observability-artifacts
132+
path: release-artifacts/
133+
retention-days: 30

0 commit comments

Comments
 (0)