# This script will build session production binaries anytime a branch is updated name: Session Build Binaries on: push: branches: - clearnet - unstable - release/ pull_request: branches: - clearnet - unstable - release/ concurrency: group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: build: runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: os: [windows-2022, macos-12, ubuntu-20.04] env: SIGNAL_ENV: production GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} steps: - run: git config --global core.autocrlf false - name: Checkout git repo uses: actions/checkout@v3 - uses: ./actions/setup_and_build - 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