Merge pull request #152 from sillsdev/rtl #167
This file contains hidden or 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: Build-Test-Release | |
| on: | |
| push: | |
| branches: | |
| - main | |
| concurrency: | |
| group: release-main | |
| cancel-in-progress: false | |
| # Keep setup/test semantics aligned with runTests.yml where applicable. | |
| jobs: | |
| build-test-release: | |
| if: github.actor != 'github-actions[bot]' | |
| runs-on: windows-latest | |
| permissions: | |
| contents: write | |
| pages: write | |
| id-token: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Setup Node, dependencies, and Playwright | |
| uses: ./.github/actions/setup-ci-deps | |
| # Extract new messages, upload to Crowdin, download latest translations | |
| - name: Extract messages | |
| run: npm run l10n:extract | |
| - name: Upload source strings to Crowdin | |
| run: npm run l10n:upload | |
| env: | |
| ETHNOLIB_CROWDIN_TOKEN: ${{ secrets.ETHNOLIB_CROWDIN_TOKEN }} | |
| - name: Download translations from Crowdin | |
| run: npm run l10n:download | |
| env: | |
| ETHNOLIB_CROWDIN_TOKEN: ${{ secrets.ETHNOLIB_CROWDIN_TOKEN }} | |
| - name: Update locales list | |
| run: npm run l10n:update-locales | |
| - name: Compile messages | |
| run: npm run l10n:compile | |
| # We've configured nx to update version numbers in the primary package.json files (rather than in the dist builds to be published) | |
| # Therefore this step must be done before build so that the new version numbers are copied to dist/package.json | |
| - name: Update version numbers in the persistent package.json files | |
| run: npx nx release version | |
| - name: Build package and run tests | |
| uses: ./.github/actions/build-and-test | |
| - name: Set name and email for git so we can commit and tag | |
| run: | | |
| git config user.name "Github Actions" | |
| git config user.email "no-reply@ethnolib-build.com" | |
| - name: Publish | |
| env: | |
| NPM_CONFIG_PROVENANCE: true | |
| # Work around an npm bug: libnpmpack calls pacote.tarball() without | |
| # _isRoot, so publishing a local directory (which is what | |
| # nx-release-publish does, from each package's dist) trips our | |
| # .npmrc allow-directory=root policy with EALLOWDIRECTORY. Still | |
| # broken as of npm 12.0.1. Scoped to this step so installs keep the | |
| # full policy; safe only because nothing resolves dependencies here | |
| # (no npm install, and no package has a prepare/prepack script -- | |
| # if one is ever added, revisit this). | |
| NPM_CONFIG_ALLOW_DIRECTORY: all | |
| shell: bash | |
| run: | | |
| set -euo pipefail | |
| npm config set provenance true | |
| npx nx release --yes 2>&1 | tee nx-release.log | |
| # Nx was failing without propagating a failing exit code. | |
| # Fail the step (and therefore the job) if the output indicates publish failed. | |
| if grep -Eqi "npm publish error:|Failed tasks:|nx-release-publish.*failed" nx-release.log; then | |
| echo "Detected publish failure in nx output." | |
| exit 1 | |
| fi | |
| - name: Push the release commit (with version number update and changelog) | |
| run: git push | |
| - name: Push the release tag | |
| run: git push --tags | |
| - name: Build storybook | |
| run: npm run --workspace components/language-chooser/react/language-chooser-react-mui build-storybook:composed | |
| - name: Build composed Svelte storybook | |
| shell: bash | |
| run: | | |
| npm run --workspace components/language-chooser/svelte/language-chooser-svelte-daisyui build-storybook -- --output-dir ../../react/language-chooser-react-mui/storybook-static/svelte | |
| - name: Upload for deploy to github pages | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: components/language-chooser/react/language-chooser-react-mui/storybook-static | |
| - name: Deploy to GitHub Pages | |
| uses: actions/deploy-pages@v4 | |
| with: | |
| token: ${{ github.token }} |