aboutsummaryrefslogtreecommitdiff
path: root/.github/workflows/build.yml
blob: 1cdebd0cf26c0d96c88a49ea1ad812bdb7150f06 (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
name: Build DevBuild
on:
    push:
        branches:
            - main
        paths:
            - .github/workflows/build.yml
            - src/**
            - browser/**
            - scripts/build/**
            - package.json
            - pnpm-lock.yaml
env:
    FORCE_COLOR: true

jobs:
    Build:
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@v3

            - uses: pnpm/action-setup@v2 # Install pnpm using packageManager key in package.json

            - name: Use Node.js 19
              uses: actions/setup-node@v3
              with:
                  node-version: 19
                  cache: "pnpm"

            - name: Install dependencies
              run: pnpm install --frozen-lockfile

            - name: Build web
              run: pnpm buildWeb --standalone

            - name: Sign firefox extension
              run: |
                pnpx web-ext sign --api-key $WEBEXT_USER --api-secret $WEBEXT_SECRET --channel=unlisted
              env:
                WEBEXT_USER: ${{ secrets.WEBEXT_USER }}
                WEBEXT_SECRET: ${{ secrets.WEBEXT_SECRET }}

            - name: Build
              run: pnpm build --standalone

            - name: Rename extensions for more user friendliness
              run: |
                mv dist/*.xpi dist/Vencord-for-Firefox.xpi
                mv dist/extension-v3.zip dist/Vencord-for-Chrome-and-Edge.zip
                rm -rf dist/extension-v2-unpacked dist/extension-v2.zip

            - name: Get some values needed for the release
              id: release_values
              run: |
                echo "release_tag=$(git rev-parse --short HEAD)" >> $GITHUB_ENV

            - name: Upload Devbuild as release
              run: |
                gh release upload devbuild --clobber dist/*
                gh release edit devbuild --title "DevBuild $RELEASE_TAG"
              env:
                GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                RELEASE_TAG: ${{ env.release_tag }}

            - name: Upload Devbuild to builds repo
              run: |
                git config --global user.name "$USERNAME"
                git config --global user.email actions@github.com

                gh repo clone "$GH_REPO" upload
                cd upload
                rm -rf * .*
                cp -r ../dist/* .

                git add -A
                git commit -m "Builds for https://github.com/$GITHUB_REPOSITORY/commit/$GITHUB_SHA"
                git push --force https://$USERNAME:$API_TOKEN@github.com/$GH_REPO.git main
              env:
                API_TOKEN: ${{ secrets.BUILDS_TOKEN }}
                GLOBIGNORE: .git:.gitignore:README.md:LICENSE
                GH_REPO: Vencord/builds
                USERNAME: GitHub-Actions