diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 00000000000..65fc1de7948 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,109 @@ +name: Build + +on: + push: + branches: [main, dev, staging] + pull_request: + +concurrency: + group: build-${{ github.ref }} + cancel-in-progress: true + +jobs: + build-linux: + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + cache: 'yarn' + + - name: Install JS dependencies + run: yarn --immutable + + - name: build + run: yarn build:linux + + - name: upload-artifacts + uses: actions/upload-artifact@v4 + with: + name: linux-build + path: wrap/dist/Wire-* + + build-windows: + runs-on: windows-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + cache: 'yarn' + + - name: Install JS dependencies + run: yarn --immutable + + - name: build + run: echo "TODO" + + build-macos: + runs-on: macos-latest + + steps: + - name: Install the Apple certificate and provisioning profile + env: + BUILD_CERTIFICATE_BASE64: ${{ secrets.MACOS_BUILD_CERT_P12 }} + P12_PASSWORD: ${{ secrets.MACOS_P12_PASSWORD }} + BUILD_PROVISION_PROFILE_BASE64: ${{ secrets.BUILD_PROVISION_PROFILE_BASE64 }} + KEYCHAIN_PASSWORD: 'test' + run: | + # create variables + CERTIFICATE_PATH=$RUNNER_TEMP/build_certificate.p12 + PP_PATH=$RUNNER_TEMP/build_pp.mobileprovision + KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db + + # import certificate and provisioning profile from secrets + echo -n "$BUILD_CERTIFICATE_BASE64" | base64 --decode -o $CERTIFICATE_PATH + echo -n "$BUILD_PROVISION_PROFILE_BASE64" | base64 --decode -o $PP_PATH + + # create temporary keychain + security create-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + security set-keychain-settings -lut 21600 $KEYCHAIN_PATH + security unlock-keychain -p "$KEYCHAIN_PASSWORD" $KEYCHAIN_PATH + + # import certificate to keychain + security import $CERTIFICATE_PATH -P "$P12_PASSWORD" -A -t cert -f pkcs12 -k $KEYCHAIN_PATH + security list-keychain -d user -s $KEYCHAIN_PATH + + # apply provisioning profile + mkdir -p ~/Library/MobileDevice/Provisioning\ Profiles + cp $PP_PATH ~/Library/MobileDevice/Provisioning\ Profiles + + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 20.x + cache: 'yarn' + + - name: Install JS dependencies + run: yarn --immutable + + - name: build + run: yarn build:macos:internal + + - name: upload-artifacts + uses: actions/upload-artifact@v4 + with: + name: macos-build + path: wrap/dist diff --git a/.github/workflows/build_test.yml b/.github/workflows/build_test.yml index 366f6eed7b3..4224c43d217 100644 --- a/.github/workflows/build_test.yml +++ b/.github/workflows/build_test.yml @@ -1,4 +1,4 @@ -name: Build and Test +name: Test on: push: @@ -6,28 +6,29 @@ on: pull_request: branches: [main, staging, dev] +concurrency: + group: test-${{ github.ref }} + cancel-in-progress: true + jobs: build_test: - name: Build and Test + name: test runs-on: ubuntu-latest steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.12.1 - with: - access_token: ${{github.token}} - name: Checkout repository uses: actions/checkout@v4 - with: - fetch-depth: 2 - - name: Set up Node.js + + - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: 14.x - - name: Yarn cache - uses: c-hive/gha-yarn-cache@v2.1.0 + node-version: 16.x + cache: 'yarn' + - name: Install dependencies run: yarn --immutable + - name: Use xvfb-run on Linux run: sed -i 's/\(electron-mocha \)/xvfb-run \1/g' package.json - - name: Test + + - name: test run: yarn test