diff --git a/.github/workflows/pull-request-build.yml b/.github/workflows/pull-request-build.yml new file mode 100644 index 000000000..e1930a0a5 --- /dev/null +++ b/.github/workflows/pull-request-build.yml @@ -0,0 +1,86 @@ +name: Build pull request artifacts + +on: + pull_request: + branches: + - master + - develop + +jobs: + build: + strategy: + fail-fast: false + matrix: + os: + - ubuntu-latest + - macos-latest + - windows-latest + runs-on: ${{ matrix.os }} + steps: + - name: Disable git core.autocrlf + run: git config --global core.autocrlf false + + - name: Checkout code + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Setup Node 20.10.0 + uses: actions/setup-node@v3 + with: + node-version: '20.10.0' + + - name: Setup node_modules cache + uses: actions/cache@v3 + with: + path: '**/node_modules' + key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + + - name: Install package dependencies + run: yarn install + + - name: Lint + run: yarn lint + + - name: Test + run: yarn test + + - name: Build app/ + run: yarn build + env: + NODE_ENV: production + BUGSNAG_API_KEY: ${{ secrets.BUGSNAG_API_KEY }} + SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_STORE_CREDENTIALS }} + + - name: Build Windows Package + if: ${{ matrix.os == 'windows-latest'}} + run: yarn electron-builder --x64 --win nsis + env: + CSC_LINK: ${{ secrets.WIN_CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.WIN_CSC_KEY_PASSWORD }} + + - name: Build MacOS Package + if: ${{ matrix.os == 'macos-latest'}} + run: | + sudo mdutil -a -i off + yarn electron-builder --publish never --mac --universal + env: + CSC_LINK: ${{ secrets.MAC_CSC_LINK }} + CSC_KEY_PASSWORD: ${{ secrets.MAC_CSC_KEY_PASSWORD }} + CSC_FOR_PULL_REQUEST: true + APPLEID: ${{ secrets.APPLEID }} + APPLEIDPASS: ${{ secrets.APPLEIDPASS }} + ASC_PROVIDER: 'S6UPZG7ZR3' + + - name: Build Ubuntu Package + if: ${{ matrix.os == 'ubuntu-latest'}} + run: yarn electron-builder --publish never --linux snap + + - name: Upload Artifacts + uses: actions/upload-artifact@v4 + with: + name: ${{ runner.os }} Artifacts + path: | + dist/rocketchat-*.dmg + dist/rocketchat-*.exe + dist/rocketchat-*.snap diff --git a/build/notarize.js b/build/notarize.js index cee8f3d1a..4459f29cf 100644 --- a/build/notarize.js +++ b/build/notarize.js @@ -18,6 +18,7 @@ exports.default = function notarizing(context) { }, 15000); notarize({ + tool: 'notarytool', appBundleId: 'chat.rocket', appPath: `${appOutDir}/${appName}.app`, appleId: process.env.APPLEID, diff --git a/electron-builder.json b/electron-builder.json index 1cfe1baf4..e1ed599e5 100644 --- a/electron-builder.json +++ b/electron-builder.json @@ -10,7 +10,7 @@ "category": "public.app-category.productivity", "target": ["dmg", "pkg", "zip", "mas"], "icon": "build/icon.icns", - "bundleVersion": "125", + "bundleVersion": "126", "helperBundleId": "chat.rocket.electron.helper", "type": "distribution", "artifactName": "rocketchat-${version}-${os}.${ext}", diff --git a/embedded.provisionprofile b/embedded.provisionprofile index b6a412144..15e5cbc9f 100644 Binary files a/embedded.provisionprofile and b/embedded.provisionprofile differ