Skip to content

Support email domain based organization discovery during self-registration. #13159

Support email domain based organization discovery during self-registration.

Support email domain based organization discovery during self-registration. #13159

Workflow file for this run

# This workflow will build PRs submitted to the master branch.
name: 👷 PR Builder
on:
pull_request:
types: [ opened, synchronize, labeled ]
branches: [ master ]
paths-ignore:
- "**.md"
- "LICENSE"
workflow_dispatch:
# Avoid running multiple builds for the same PR.
concurrency:
group: pr-builder-${{ github.ref }}
cancel-in-progress: true
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
lint:
name: ⬣ ESLint (STATIC ANALYSIS)
if: ${{ github.event_name == 'pull_request' || github.event.label.name == 'trigger-pr-builder' }}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ lts/* ]
pnpm-version: [ 8.7.4 ]
steps:
- name: ⬇️ Checkout
id: checkout
uses: actions/checkout@v2.3.3
with:
fetch-depth: 0
- name: 🟢 Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: 🐳 Set SHAs for Nx
id: set-shas
uses: nrwl/nx-set-shas@v3
with:
main-branch-name: "master"
- name: 🥡 Setup pnpm
id: setup-pnpm
uses: pnpm/action-setup@v2.1.0
with:
version: ${{ matrix.pnpm-version }}
run_install: false
- name: 🎈 Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: 🔆 Cache pnpm modules
uses: actions/cache@v3
id: pnpm-cache
with:
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 🧩 Install Dependencies
id: install-dependencies
run: pnpm install
- name: 🦄 Lint Changed Files
id: lint-changed-with-eslint
working-directory: .github/workflows
run: |
bash ./scripts/lint-changed.sh ${{ github.event.pull_request.number }}
# Temporarily disable linting all files as it is failing intermittently.
# - name: ⏳ Lint All Files
# id: lint-with-eslint
# run: pnpm nx affected --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --plain --target=lint --parallel=3
typecheck:
name: ʦ Typecheck (STATIC ANALYSIS)
if: ${{ github.event.label.name == 'trigger-pr-builder' || github.event_name == 'pull_request'}}
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ lts/* ]
pnpm-version: [ 8.7.4 ]
steps:
- name: ⬇️ Checkout
id: checkout
uses: actions/checkout@v2.3.3
with:
fetch-depth: 0
- name: 🟢 Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: 🐳 Set SHAs for Nx
id: set-shas
uses: nrwl/nx-set-shas@v3
with:
main-branch-name: "master"
- name: 🥡 Setup pnpm
uses: pnpm/action-setup@v2.1.0
with:
version: ${{ matrix.pnpm-version }}
run_install: false
- name: 🎈 Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: 🔆 Cache pnpm modules
uses: actions/cache@v3
id: pnpm-cache
with:
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 🧩 Install Dependencies
id: install-dependencies
run: pnpm install
- name: 👷 Build Re-usable Modules
id: build-reusable-modules
run: pnpm build:modules
- name: ☄️ Check Type Errors
run: pnpm nx affected --base=${{ env.NX_BASE }} --head=${{ env.NX_HEAD }} --target=typecheck --parallel=3
test:
name: 👾 Unit Test (TESTING)
needs: [ typecheck ]
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ lts/* ]
pnpm-version: [ 8.7.4 ]
steps:
- name: ⬇️ Checkout
id: checkout
uses: actions/checkout@v2.3.3
- name: 🟢 Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: 🥡 Setup pnpm
uses: pnpm/action-setup@v2.1.0
with:
version: ${{ matrix.pnpm-version }}
run_install: false
- name: 🎈 Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: 🔆 Cache pnpm modules
uses: actions/cache@v3
id: pnpm-cache
with:
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 🧩 Install Dependencies
id: install-dependencies
run: pnpm install
- name: 👷 Build Re-usable Modules
id: build-reusable-modules
run: pnpm build:modules
- name: 🃏 Run Jest & Collect Coverage
id: run-jest-test-and-coverage
run: pnpm test:unit:coverage
- name: 🤖 Aggregate Test Coverage
id: aggregate-coverage-reports
run: |
pnpm test:unit:coverage:aggregate
pnpm nyc:text-summary-report
pnpm nyc:text-report
- name: Upload `@wso2is/core` coverage reports to Codecov
id: upload-wso2is-core-coverage-1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./modules/core/coverage/coverage-final.json
flags: '@wso2is/core'
verbose: true
- name: Upload `@wso2is/features` coverage reports to Codecov
id: upload-wso2is-features-coverage-1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./features/coverage/coverage-final.json
flags: '@wso2is/features'
verbose: true
- name: Upload `@wso2is/i18n` coverage reports to Codecov
id: upload-wso2is-i18n-coverage-1
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: ./modules/i18n/coverage/coverage-final.json
flags: '@wso2is/i18n'
verbose: true
build:
name: 🚧 Build
needs: [ test, typecheck ]
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [ lts/* ]
maven-version: [ 3.8.6 ]
java-version: [ 11 ]
pnpm-version: [ 8.7.4 ]
steps:
- name: ⬇️ Checkout
id: checkout
uses: actions/checkout@v2.3.3
- name: 🟢 Setup node
id: setup-node
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: ☕ Set up JDK 11
id: jdk-setup
uses: actions/setup-java@v3
with:
java-version: ${{ matrix.java-version }}
distribution: "adopt"
cache: maven
- name: 🦩 Set up Maven
uses: stCarolas/setup-maven@v4
id: mvn-setup
with:
maven-version: ${{ matrix.maven-version }}
- name: 🥡 Setup pnpm
uses: pnpm/action-setup@v2.1.0
with:
version: ${{ matrix.pnpm-version }}
run_install: false
- name: 🎈 Get pnpm store directory
id: get-pnpm-cache-dir
run: |
echo "::set-output name=pnpm_cache_dir::$(pnpm store path)"
- name: 🔆 Cache pnpm modules
uses: actions/cache@v3
id: pnpm-cache
with:
path: ${{ steps.get-pnpm-cache-dir.outputs.pnpm_cache_dir }}
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: |
${{ runner.os }}-pnpm-store-
- name: 🧩 Install Dependencies
id: install-dependencies
run: pnpm install
- name: 👷 PNPM Build
id: build-with-pnpm
run: pnpm build
- name: 🏗️ Maven Build identity-apps-core
id: build-with-maven
run: |
cd identity-apps-core
mvn clean install -U -Dlint.exec.skip=true -Dbootstrap.exec.skip=true
- name: 💾 Cache local Maven repository
id: cache-maven-m2
uses: actions/cache@v2
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: |
${{ runner.os }}-maven-