name: Session Desktop on: push: branches: - clearnet - unstable - 'release/**' - 'ci/**' pull_request: branches: - clearnet - unstable - 'release/**' - 'ci/**' 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: # We want a mac arm64 build, and according to this https://github.com/actions/runner-images#available-images macos-14 is always arm64 # macos-14 is disabled for now as we hit our free tier limit for macos builds os: [windows-2022, ubuntu-20.04, macos-12] 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 - name: Setup & Build uses: ./actions/setup_and_build - name: Lint Files # no need to lint files on all platforms. Just do it once on the quicker one if: runner.os == 'Linux' run: yarn lint-full - name: Enforce yarn.lock has no duplicates uses: ./actions/deduplicate_fail - name: Unit Test run: yarn test - name: Build but do not publish # we want this to run always, except on "push" to "master" if: github.event_name != 'push' || github.ref != 'master' uses: ./actions/build_no_publish with: 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 & publish # we want this to run only when on "push" to "master" if: github.event_name == 'push' && github.ref == 'master' uses: ./actions/build_publish with: 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 }}