From bcf9b173214239bcfa716a9918235a5547c24b4c Mon Sep 17 00:00:00 2001 From: Elliot DeNolf Date: Tue, 13 Aug 2024 19:40:37 -0400 Subject: [PATCH] ci: test github.ref --- .github/workflows/test.yml | 137 +++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 .github/workflows/test.yml diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml new file mode 100644 index 00000000000..aa507f8f4bc --- /dev/null +++ b/.github/workflows/test.yml @@ -0,0 +1,137 @@ +name: build + +on: + pull_request: + types: + - opened + - reopened + - synchronize + push: + branches: + - main + - beta + +concurrency: + # -- + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.ref_protected && github.sha || ''}} + cancel-in-progress: true + +env: + NODE_VERSION: 18.20.2 + PNPM_VERSION: 8.15.7 + DO_NOT_TRACK: 1 # Disable Turbopack telemetry + NEXT_TELEMETRY_DISABLED: 1 # Disable Next telemetry + +jobs: + + build: + needs: changes + if: ${{ needs.changes.outputs.needs_build == 'true' }} + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 25 + + # https://github.com/actions/virtual-environments/issues/1187 + - name: tune linux network + run: sudo ethtool -K eth0 tx off rx off + + - name: Setup Node@${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install pnpm + uses: pnpm/action-setup@v3 + with: + version: ${{ env.PNPM_VERSION }} + run_install: false + + - name: Get pnpm store directory + shell: bash + run: | + echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV + + - name: Setup pnpm cache + uses: actions/cache@v4 + timeout-minutes: 720 + with: + path: ${{ env.STORE_PATH }} + key: pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + restore-keys: | + pnpm-store- + pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} + + - run: pnpm install + - run: pnpm run build:all + env: + DO_NOT_TRACK: 1 # Disable Turbopack telemetry + + - name: Cache build + uses: actions/cache@v4 + timeout-minutes: 10 + with: + path: ./* + key: ${{ github.sha }}-${{ github.run_number }} + + tests-unit: + runs-on: ubuntu-latest + needs: build + + steps: + # https://github.com/actions/virtual-environments/issues/1187 + - name: tune linux network + run: sudo ethtool -K eth0 tx off rx off + + - name: Setup Node@${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Install pnpm + uses: pnpm/action-setup@v3 + with: + version: ${{ env.PNPM_VERSION }} + run_install: false + + - name: Restore build + uses: actions/cache@v4 + timeout-minutes: 10 + with: + path: ./* + key: ${{ github.sha }}-${{ github.run_number }} + + - name: Unit Tests + run: pnpm test:unit + env: + NODE_OPTIONS: --max-old-space-size=8096 + + all-green: + name: All Green + if: always() + runs-on: ubuntu-latest + needs: + - build + - tests-unit + + steps: + # - if: ${{ always() && (contains(needs.*.result, 'failure') || contains(needs.*.result, 'cancelled')) }} + - if: ${{ always() }} + run: echo "Sample success of all jobs" + + only-on-beta: + name: Test on beta + # if: github.ref == 'refs/heads/beta' + runs-on: ubuntu-latest + needs: + - all-green + + steps: + # debug github.ref output + - run: | + echo github.ref: ${{ github.ref }} + echo ${{ github.ref == 'refs/heads/beta' }} + echo ${{ github.ref == 'refs/heads/main' }} +