|
10 | 10 | pull_request:
|
11 | 11 | schedule:
|
12 | 12 | - cron: "0 0,12 * * *"
|
| 13 | + |
| 14 | +concurrency: |
| 15 | + group: ${{ github.ref_name || github.sha }} |
| 16 | + cancel-in-progress: true |
| 17 | + |
13 | 18 | defaults:
|
14 | 19 | run:
|
15 | 20 | shell: bash
|
|
66 | 71 | sudo curl -L https://github.com/docker/compose/releases/download/v2.26.0/docker-compose-`uname -s`-`uname -m` -o "/usr/local/lib/docker/cli-plugins/docker-compose"
|
67 | 72 | sudo chmod +x "/usr/local/lib/docker/cli-plugins/docker-compose"
|
68 | 73 |
|
| 74 | + - name: Prepare Docker Volume Caching |
| 75 | + id: cache_key |
| 76 | + run: | |
| 77 | + # Set permissions for docker volumes so we can cache and restore |
| 78 | + sudo chmod o+x /var/lib/docker |
| 79 | + sudo chmod -R o+rwx /var/lib/docker/volumes |
| 80 | + source .env |
| 81 | + SENTRY_IMAGE_SHA=$(docker buildx imagetools inspect $SENTRY_IMAGE --format "{{println .Manifest.Digest}}") |
| 82 | + echo "SENTRY_IMAGE_SHA=$SENTRY_IMAGE_SHA" >> $GITHUB_OUTPUT |
| 83 | + SNUBA_IMAGE_SHA=$(docker buildx imagetools inspect $SNUBA_IMAGE --format "{{println .Manifest.Digest}}") |
| 84 | + echo "SNUBA_IMAGE_SHA=$SNUBA_IMAGE_SHA" >> $GITHUB_OUTPUT |
| 85 | +
|
| 86 | + - name: Restore DB Volumes Cache |
| 87 | + id: restore_cache |
| 88 | + uses: actions/cache/restore@v4 |
| 89 | + with: |
| 90 | + key: db-volumes-v4-${{ steps.cache_key.outputs.SENTRY_IMAGE_SHA }}-${{ steps.cache_key.outputs.SNUBA_IMAGE_SHA }} |
| 91 | + restore-keys: | |
| 92 | + db-volumes-v4-${{ steps.cache_key.outputs.SENTRY_IMAGE_SHA }} |
| 93 | + db-volumes-v4- |
| 94 | + path: | |
| 95 | + /var/lib/docker/volumes/sentry-postgres/_data |
| 96 | + /var/lib/docker/volumes/sentry-clickhouse/_data |
| 97 | +
|
69 | 98 | - name: Install ${{ env.LATEST_TAG }}
|
70 | 99 | run: ./install.sh
|
71 | 100 |
|
| 101 | + - name: Prepare Docker Volume Caching |
| 102 | + run: | |
| 103 | + # Set permissions for docker volumes so we can cache and restore |
| 104 | + sudo chmod o+x /var/lib/docker |
| 105 | + sudo chmod -R o+rx /var/lib/docker/volumes |
| 106 | +
|
| 107 | + - name: Save DB Volumes Cache |
| 108 | + if: steps.restore_cache.outputs.cache-hit != 'true' |
| 109 | + uses: actions/cache/save@v4 |
| 110 | + with: |
| 111 | + key: ${{ steps.restore_cache.outputs.cache-primary-key }} |
| 112 | + path: | |
| 113 | + /var/lib/docker/volumes/sentry-postgres/_data |
| 114 | + /var/lib/docker/volumes/sentry-clickhouse/_data |
| 115 | +
|
72 | 116 | - name: Checkout current ref
|
73 | 117 | uses: actions/checkout@v4
|
74 | 118 |
|
@@ -125,13 +169,52 @@ jobs:
|
125 | 169 | sudo curl -L https://github.com/docker/compose/releases/download/${{ matrix.compose_version }}/docker-compose-`uname -s`-`uname -m` -o "${{ matrix.compose_path }}/docker-compose"
|
126 | 170 | sudo chmod +x "${{ matrix.compose_path }}/docker-compose"
|
127 | 171 |
|
| 172 | + - name: Prepare Docker Volume Caching |
| 173 | + id: cache_key |
| 174 | + run: | |
| 175 | + # Set permissions for docker volumes so we can cache and restore |
| 176 | + sudo chmod o+x /var/lib/docker |
| 177 | + sudo chmod -R o+rwx /var/lib/docker/volumes |
| 178 | + source .env |
| 179 | + SENTRY_IMAGE_SHA=$(docker buildx imagetools inspect $SENTRY_IMAGE --format "{{println .Manifest.Digest}}") |
| 180 | + echo "SENTRY_IMAGE_SHA=$SENTRY_IMAGE_SHA" >> $GITHUB_OUTPUT |
| 181 | + SNUBA_IMAGE_SHA=$(docker buildx imagetools inspect $SNUBA_IMAGE --format "{{println .Manifest.Digest}}") |
| 182 | + echo "SNUBA_IMAGE_SHA=$SNUBA_IMAGE_SHA" >> $GITHUB_OUTPUT |
| 183 | +
|
| 184 | + - name: Restore DB Volumes Cache |
| 185 | + id: restore_cache |
| 186 | + uses: actions/cache/restore@v4 |
| 187 | + with: |
| 188 | + key: db-volumes-v4-${{ steps.cache_key.outputs.SENTRY_IMAGE_SHA }}-${{ steps.cache_key.outputs.SNUBA_IMAGE_SHA }} |
| 189 | + restore-keys: | |
| 190 | + db-volumes-v4-${{ steps.cache_key.outputs.SENTRY_IMAGE_SHA }} |
| 191 | + db-volumes-v4- |
| 192 | + path: | |
| 193 | + /var/lib/docker/volumes/sentry-postgres/_data |
| 194 | + /var/lib/docker/volumes/sentry-clickhouse/_data |
| 195 | +
|
128 | 196 | - name: Install self-hosted
|
129 | 197 | uses: nick-fields/retry@v3
|
130 | 198 | with:
|
131 | 199 | timeout_minutes: 10
|
132 | 200 | max_attempts: 3
|
133 | 201 | command: ./install.sh
|
134 | 202 |
|
| 203 | + - name: Prepare Docker Volume Caching |
| 204 | + run: | |
| 205 | + # Set permissions for docker volumes so we can cache and restore |
| 206 | + sudo chmod o+x /var/lib/docker |
| 207 | + sudo chmod -R o+rx /var/lib/docker/volumes |
| 208 | +
|
| 209 | + - name: Save DB Volumes Cache |
| 210 | + if: steps.restore_cache.outputs.cache-hit != 'true' |
| 211 | + uses: actions/cache/save@v4 |
| 212 | + with: |
| 213 | + key: ${{ steps.restore_cache.outputs.cache-primary-key }} |
| 214 | + path: | |
| 215 | + /var/lib/docker/volumes/sentry-postgres/_data |
| 216 | + /var/lib/docker/volumes/sentry-clickhouse/_data |
| 217 | +
|
135 | 218 | - name: Integration Test
|
136 | 219 | run: |
|
137 | 220 | docker compose up --wait
|
|
0 commit comments