Reload Locales On CRUD Operations #5832
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Pull Requests | |
on: [pull_request] | |
env: | |
NODE_OPTIONS: --max_old_space_size=4096 | |
jobs: | |
validate-commits: | |
name: Validate commit messages | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v3 | |
- uses: webiny/[email protected] | |
init: | |
name: Init | |
runs-on: webiny-build-packages | |
outputs: | |
jest-packages: ${{ steps.list-jest-packages.outputs.jest-packages }} | |
day: ${{ steps.get-day.outputs.day }} | |
ts: ${{ steps.get-timestamp.outputs.ts }} | |
is-fork-pr: ${{ steps.is-fork-pr.outputs.is-fork-pr }} | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v3 | |
- name: Get day of the month | |
id: get-day | |
run: echo "day=$(node --eval "console.log(new Date().getDate())")" >> $GITHUB_OUTPUT | |
- name: Get timestamp | |
id: get-timestamp | |
run: echo "ts=$(node --eval "console.log(new Date().getTime())")" >> $GITHUB_OUTPUT | |
- name: Is a PR from a fork | |
id: is-fork-pr | |
run: echo "is-fork-pr=${{ github.event.pull_request.head.repo.fork }}" >> $GITHUB_OUTPUT | |
- name: Ignored Jest packages | |
id: get-ignored-jest-packages | |
if: steps.is-fork-pr.outputs.is-fork-pr == 'true' | |
run: echo "ignored-jest-packages=ddb-es" >> $GITHUB_OUTPUT | |
- name: List packages with Jest tests | |
id: list-jest-packages | |
run: echo "jest-packages=$(node scripts/listPackagesWithTests.js --ignore-packages=${{ steps.get-ignored-jest-packages.outputs.ignored-jest-packages }})" >> $GITHUB_OUTPUT | |
- uses: actions/cache@v3 | |
id: yarn-cache | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v3 | |
id: cached-packages | |
with: | |
path: .webiny/cached-packages | |
key: ${{ runner.os }}-${{ steps.get-day.outputs.day }}-${{ secrets.RANDOM_CACHE_KEY_SUFFIX }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- uses: actions/cache@v3 | |
id: packages-cache | |
with: | |
path: .webiny/cached-packages | |
key: packages-cache-${{ steps.get-timestamp.outputs.ts }} | |
code-analysis: | |
needs: init | |
name: Static code analysis | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v3 | |
with: | |
path: .webiny/cached-packages | |
key: packages-cache-${{ needs.init.outputs.ts }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Check code formatting | |
run: yarn prettier:check | |
- name: Check dependencies | |
run: yarn adio | |
- name: Check TS configs | |
run: yarn check-ts-configs | |
- name: ESLint | |
run: yarn eslint | |
code-analysis-typescript: | |
name: Static code analysis (TypeScript) | |
runs-on: webiny-build-packages | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages (full) | |
run: yarn build | |
jest-tests: | |
needs: init | |
name: ${{ matrix.package.cmd }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [18] | |
package: ${{ fromJson(needs.init.outputs.jest-packages) }} | |
runs-on: ${{ matrix.os }} | |
# PRs from repo forks won't have access to these environment variables / secrets. | |
env: | |
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
AWS_ELASTIC_SEARCH_DOMAIN_NAME: ${{ secrets.AWS_ELASTIC_SEARCH_DOMAIN_NAME }} | |
ELASTIC_SEARCH_ENDPOINT: ${{ secrets.ELASTIC_SEARCH_ENDPOINT }} | |
ELASTIC_SEARCH_INDEX_PREFIX: ${{ matrix.package.id }} | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- uses: actions/checkout@v3 | |
- uses: actions/cache@v3 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v3 | |
with: | |
path: .webiny/cached-packages | |
key: packages-cache-${{ needs.init.outputs.ts }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Run tests | |
run: yarn test ${{ matrix.package.cmd }} | |
verdaccio-publish: | |
if: needs.init.outputs.is-fork-pr != 'true' # Do not run this job if a PR has been submitted from a fork. | |
needs: init | |
name: Publish to Verdaccio | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: 18 | |
- uses: actions/checkout@v3 | |
with: | |
# We want to make sure all commits are present and that the next release version is calculated correctly. | |
fetch-depth: 0 | |
# Fixes Lerna's detached HEAD issue (https://github.com/lerna/lerna/issues/2443). | |
ref: ${{ github.event.pull_request.head.ref }} | |
- uses: actions/cache@v3 | |
with: | |
path: .yarn/cache | |
key: yarn-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} | |
- uses: actions/cache@v3 | |
with: | |
path: .webiny/cached-packages | |
key: packages-cache-${{ needs.init.outputs.ts }} | |
- name: Install dependencies | |
run: yarn --immutable | |
- name: Build packages | |
run: yarn build:quick | |
- name: Start Verdaccio local server | |
run: npx pm2 start verdaccio -- -c .verdaccio.yaml | |
- name: Create ".npmrc" file in the project root, with a dummy auth token | |
run: echo '//localhost:4873/:_authToken="dummy-auth-token"' > .npmrc | |
- name: Configure NPM to use local registry | |
run: npm config set registry http://localhost:4873 | |
- name: Set git email | |
run: git config --global user.email "[email protected]" | |
- name: Set git username | |
run: git config --global user.name "webiny-bot" | |
- name: Version and publish to Verdaccio | |
run: yarn release --type=verdaccio | |
- name: Upload verdaccio files | |
uses: actions/upload-artifact@v3 | |
with: | |
name: verdaccio-files | |
retention-days: 1 | |
path: | | |
.verdaccio/ | |
.verdaccio.yaml | |
test-create-webiny-project: | |
needs: verdaccio-publish | |
name: Test "create-webiny-project" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest] | |
node: [18] | |
runs-on: ${{ matrix.os }} | |
env: | |
YARN_ENABLE_IMMUTABLE_INSTALLS: false | |
steps: | |
- uses: actions/setup-node@v3 | |
with: | |
node-version: ${{ matrix.node }} | |
- uses: actions/download-artifact@v3 | |
with: | |
name: verdaccio-files | |
path: verdaccio-files | |
- name: Start Verdaccio local server | |
working-directory: verdaccio-files | |
run: yarn add pm2 verdaccio && npx pm2 start verdaccio -- -c .verdaccio.yaml | |
- name: Configure NPM to use local registry | |
run: npm config set registry http://localhost:4873 | |
- name: Set git email (needed for create-webiny-project) | |
run: git config --global user.email "[email protected]" | |
- name: Set git username (needed for create-webiny-project) | |
run: git config --global user.name "webiny-bot" | |
- name: Disable Webiny telemetry | |
run: > | |
mkdir ~/.webiny && | |
echo '{ "id": "ci", "telemetry": false }' > ~/.webiny/config | |
- name: Create a new Webiny project | |
run: > | |
npx create-webiny-project@local-npm test-project | |
--tag local-npm --no-interactive | |
--assign-to-yarnrc '{"npmRegistryServer":"http://localhost:4873","unsafeHttpWhitelist":["localhost"]}' | |
--template-options '{"region":"eu-central-1"}' | |
- name: Build "api" app | |
working-directory: test-project | |
run: yarn webiny ws run build --folder api --env dev |