diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index a5529dccb4..2a89f3991b 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -2,11 +2,15 @@ name: Session Test on: + push: + branches: + - clearnet + - unstable pull_request: branches: - clearnet - unstable - - unstable1 + concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} @@ -42,7 +46,7 @@ jobs: path: node_modules key: ${{ runner.os }}-${{ hashFiles('package.json', 'yarn.lock', 'patches/**') }} - #Not having this will break the windows build because the PATH won't be set by msbuild. + # Not having this will break the windows build because the PATH won't be set by msbuild. - name: Add msbuild to PATH uses: microsoft/setup-msbuild@v1.3.1 if: runner.os == 'Windows' @@ -50,7 +54,7 @@ jobs: - name: Setup node for windows if: runner.os == 'Windows' run: | - npm install --global node-gyp@latest + npm install --global yarn node-gyp@latest - name: Install Desktop node_modules if: steps.cache-desktop-modules.outputs.cache-hit != 'true' @@ -66,3 +70,53 @@ jobs: - name: Unit Test run: yarn test + + build-binaries: + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [windows-2022, macos-11, ubuntu-20.04] + env: + SIGNAL_ENV: production + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Build windows production binaries + if: runner.os == 'Windows' + run: node_modules\.bin\electron-builder --config.extraMetadata.environment=%SIGNAL_ENV% --publish=never --config.directories.output=release + + - name: Build mac production binaries + if: runner.os == 'macOS' + run: | + source ./build/setup-mac-certificate.sh + $(yarn bin)/electron-builder --config.extraMetadata.environment=$SIGNAL_ENV --config.mac.bundleVersion=${{ github.ref }} --publish=never --config.directories.output=release + env: + MAC_CERTIFICATE: ${{ secrets.MAC_CERTIFICATE }} + MAC_CERTIFICATE_PASSWORD: ${{ secrets.MAC_CERTIFICATE_PASSWORD }} + SIGNING_APPLE_ID: ${{ secrets.SIGNING_APPLE_ID }} + SIGNING_APP_PASSWORD: ${{ secrets.SIGNING_APP_PASSWORD }} + SIGNING_TEAM_ID: ${{ secrets.SIGNING_TEAM_ID }} + + - name: Build linux production binaries + if: runner.os == 'Linux' + run: | + sudo apt-get install -y rpm + yarn build-release + + - name: Remove unpacked files + run: | + ls -d -- */ | xargs -I{} echo "Removing {}" + ls -d -- */ | xargs -I{} rm -rf {} + shell: bash + working-directory: ./release/ + + - name: Remaining files + run: ls . + shell: bash + working-directory: ./release/ + + - name: Upload Production Artifacts + uses: actions/upload-artifact@v1 + with: + name: ${{ runner.OS }}-production + path: release \ No newline at end of file