|
14 | 14 | runs-on: ubuntu-latest |
15 | 15 | steps: |
16 | 16 | - uses: actions/checkout@v4 |
| 17 | + with: |
| 18 | + fetch-depth: 0 |
| 19 | + |
| 20 | + - name: Check if extension files changed |
| 21 | + id: changes |
| 22 | + run: | |
| 23 | + # Get the previous tag |
| 24 | + PREV_TAG=$(git tag --sort=-version:refname | grep '^v' | head -n 2 | tail -n 1) |
| 25 | + CURRENT_TAG=${GITHUB_REF#refs/tags/} |
| 26 | +
|
| 27 | + if [ -z "$PREV_TAG" ]; then |
| 28 | + echo "No previous tag found, assuming changes" |
| 29 | + echo "extension_changed=true" >> $GITHUB_OUTPUT |
| 30 | + exit 0 |
| 31 | + fi |
| 32 | +
|
| 33 | + echo "Comparing $PREV_TAG to $CURRENT_TAG" |
| 34 | +
|
| 35 | + # Check if any extension files changed |
| 36 | + CHANGED=$(git diff --name-only "$PREV_TAG" "$CURRENT_TAG" -- crates/terminator/browser-extension/ | wc -l) |
| 37 | +
|
| 38 | + if [ "$CHANGED" -gt 0 ]; then |
| 39 | + echo "Extension files changed ($CHANGED files)" |
| 40 | + echo "extension_changed=true" >> $GITHUB_OUTPUT |
| 41 | + else |
| 42 | + echo "No extension files changed" |
| 43 | + echo "extension_changed=false" >> $GITHUB_OUTPUT |
| 44 | + fi |
17 | 45 |
|
18 | 46 | - name: Package extension |
19 | 47 | run: | |
|
33 | 61 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |
34 | 62 |
|
35 | 63 | - name: Get Chrome Web Store access token |
| 64 | + if: steps.changes.outputs.extension_changed == 'true' |
36 | 65 | id: cws_token |
37 | 66 | run: | |
38 | 67 | RESPONSE=$(curl -s -X POST https://oauth2.googleapis.com/token \ |
|
50 | 79 | echo "[OK] Access token obtained" |
51 | 80 |
|
52 | 81 | - name: Upload to Chrome Web Store |
| 82 | + if: steps.changes.outputs.extension_changed == 'true' |
53 | 83 | run: | |
54 | 84 | RESPONSE=$(curl -s -X PUT \ |
55 | 85 | "https://www.googleapis.com/upload/chromewebstore/v1.1/items/${{ secrets.CWS_EXTENSION_ID }}" \ |
|
65 | 95 | echo "[OK] Extension uploaded to Chrome Web Store" |
66 | 96 |
|
67 | 97 | - name: Publish to Chrome Web Store |
| 98 | + if: steps.changes.outputs.extension_changed == 'true' |
68 | 99 | run: | |
69 | 100 | RESPONSE=$(curl -s -X POST \ |
70 | 101 | "https://www.googleapis.com/chromewebstore/v1.1/items/${{ secrets.CWS_EXTENSION_ID }}/publish" \ |
|
0 commit comments