aboutsummaryrefslogtreecommitdiffhomepage
path: root/.github/workflows/release.yml
blob: 54a0ddaec8bcbdbeab8d0cf72371368bb55301d0 (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
name: Upload Release Build

on: 
  release:
    types: [published]

jobs:

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

    steps:
      # Initialization
      - uses: actions/checkout@v4
        with:
          submodules: recursive
      - uses: actions/setup-node@v4
        with:
          node-version: '18'
      - name: Copy configuration
        run: cp config.json.example config.json

      # Create source artifact with submodule
      - name: Create directory
        run: cd ..; mkdir ./builds
      - name: Zip Source code
        run: zip -r ../builds/SourceCodeUseThisOne.zip *
      - name: Upload Source to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        with:
          args: ../builds/SourceCodeUseThisOne.zip
          name: SourceCodeUseThisOne.zip
          path: ../builds/SourceCodeUseThisOne.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}

      - run: npm ci
      
      # Create Chrome artifacts
      - name: Create Chrome artifacts
        run: npm run build:chrome
      - run: mkdir ./builds
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/ChromeExtension.zip *
      - name: Upload ChromeExtension to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        with:
          args: builds/ChromeExtension.zip
          name: ChromeExtension.zip
          path: ./builds/ChromeExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}

      # Create Firefox artifacts
      - name: Create Firefox artifacts
        run: npm run build:firefox
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/FirefoxExtension.zip *
      - name: Upload FirefoxExtension to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        with:
          args: builds/FirefoxExtension.zip
          name: FirefoxExtension.zip
          path: ./builds/FirefoxExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}

      # Create Beta artifacts (Builds with the name changed to beta)
      - name: Create Chrome Beta artifacts
        run: npm run build:chrome -- --env stream=beta
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
      - name: Upload ChromeExtensionBeta to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        with:
          args: builds/ChromeExtensionBeta.zip
          name: ChromeExtensionBeta.zip
          path: ./builds/ChromeExtensionBeta.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}


      # Create Safari artifacts
      - name: Create Safari artifacts
        run: npm run build:safari
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/SafariExtension.zip *
      - name: Upload SafariExtension to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        with:
          args: builds/SafariExtension.zip
          name: SafariExtension.zip
          path: ./builds/SafariExtension.zip
          repo-token: ${{ secrets.GITHUB_TOKEN }}

      # Create Edge artifacts
      - name: Clear dist for Edge
        run: rm -rf ./dist
      - name: Create Edge artifacts
        run: npm run build:edge
      - name: Zip Artifacts
        run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *
      - name: Upload EdgeExtension to release
        uses: Shopify/upload-to-release@07611424e04f1475ddf550e1c0dd650b867d5467
        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@v4
        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@v4
        with:
          name: FirefoxExtensionSigned.xpi
          path: ./web-ext-artifacts/FirefoxSignedInstaller.xpi

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