aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/release.yml
blob: 79ea0e3d45fe9e3b92fd16b21dcfb9a4885595ba (plain)
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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
name: Upload Release Build

on: 
  release:
    types: [published]

jobs:

  build:
    name: Upload Release
    runs-on: ubuntu-latest

    steps:
      # Initialization
      - uses: actions/checkout@v2
      - uses: actions/setup-node@v2
        with:
          node-version: '16'
      - run: npm ci
      - name: Copy configuration
        run: cp config.json.example config.json
      
      # Create Chrome artifacts
      - name: Create Chrome artifacts
        run: npm run build:chrome
      - uses: actions/upload-artifact@v2
        with:
          name: ChromeExtension
          path: dist
      - run: mkdir ./builds
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/ChromeExtension.zip *

      # Create Firefox artifacts
      - name: Create Firefox artifacts
        run: npm run build:firefox
      - uses: actions/upload-artifact@v2
        with:
          name: FirefoxExtension
          path: dist
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/FirefoxExtension.zip *

      # Create Beta artifacts (Builds with the name changed to beta)
      - name: Create Chrome Beta artifacts
        run: npm run build:chrome -- --env stream=beta
      - uses: actions/upload-artifact@v2
        with:
          name: ChromeExtensionBeta
          path: dist
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *


      # Create Safari artifacts
      - name: Create Safari artifacts
        run: npm run build:safari
      - uses: actions/upload-artifact@v2
        with:
          name: SafariExtension
          path: dist
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/SafariExtension.zip *
      # Create Edge artifacts
      - name: Clear dist for Edge
        run: rm -rf ./dist
      - name: Create Edge artifacts
        run: npm run build:edge
      - uses: actions/upload-artifact@v2
        with:
          name: EdgeExtension
          path: dist
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *

      # Upload each release asset
      - name: Upload ChromeExtension to release
        uses: Shopify/upload-to-release@master
        with:
          args: builds/ChromeExtension.zip
          name: ChromeExtension.zip
          path: ./builds/ChromeExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - name: Upload ChromeExtensionBeta to release
        uses: Shopify/upload-to-release@master
        with:
          args: builds/ChromeExtensionBeta.zip
          name: ChromeExtensionBeta.zip
          path: ./builds/ChromeExtensionBeta.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - name: Upload FirefoxExtension to release
        uses: Shopify/upload-to-release@master
        with:
          args: builds/FirefoxExtension.zip
          name: FirefoxExtension.zip
          path: ./builds/FirefoxExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - name: Upload SafariExtension to release
        uses: Shopify/upload-to-release@master
        with:
          args: builds/SafariExtension.zip
          name: SafariExtension.zip
          path: ./builds/SafariExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}
      - name: Upload EdgeExtension to release
        uses: Shopify/upload-to-release@master
        with:
          args: builds/EdgeExtension.zip
          name: EdgeExtension.zip
          path: ./builds/EdgeExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}

      # Firefox Beta
      - name: Create Firefox Beta artifacts
        run: npm run build:firefox -- --env stream=beta
      - uses: actions/upload-artifact@v2
        with:
          name: FirefoxExtensionBeta
          path: dist
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/FirefoxExtensionBeta.zip *

      # Create Firefox Signed Beta version
      - name: Create Firefox Signed Beta artifacts
        run: npm run web-sign
        env:
          WEB_EXT_API_KEY: ${{ secrets.WEB_EXT_API_KEY }}
          WEB_EXT_API_SECRET: ${{ secrets.WEB_EXT_API_SECRET }}
      - name: Install rename
        run: sudo apt-get install rename
      - name: Rename signed file
        run: cd ./web-ext-artifacts ; rename 's/.*/FirefoxSignedInstaller.xpi/' *
      - uses: actions/upload-artifact@v2
        with:
          name: FirefoxExtensionSigned.xpi
          path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi

      - name: Upload FirefoxSignedInstaller.xpi to release
        uses: Shopify/upload-to-release@master
        with:
          args: web-ext-artifacts/FirefoxSignedInstaller.xpi
          name: FirefoxSignedInstaller.xpi
          path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi
          repo-token: ${{ secrets.GITHUB_TOKEN }}