Update dependency @types/eslint to v9 #3478
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: Main | |
on: | |
push: | |
branches: [main] | |
tags: [v*] | |
pull_request: {} | |
workflow_dispatch: {} | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Scala Build | |
outputs: | |
version: ${{ steps.save-version.outputs.version }} | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Cache Build Files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/target | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
- name: Build | |
run: sbt compile js/fullLinkJS cli/assembly | |
- id: save-version | |
name: Save Version | |
run: | | |
version="$(sbt --error "print coreJVM/releaseVersion" | head -n1)" | |
echo -n "version=$version" | |
echo -n "version=$version" >> $GITHUB_OUTPUT | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: modules/recheck-js/target/scala-2.13/recheck-js-opt/recheck.js | |
name: recheck.js | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: modules/recheck-cli/target/scala-2.13/recheck.jar | |
name: recheck.jar | |
scala-lint: | |
needs: [build] | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Scala Lint | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Cache Build Files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/target | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
- name: Lint | |
run: sbt scalafmtCheckAll scalafmtSbtCheck 'scalafixAll --check' | |
node-lint: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Node Lint | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'yarn' | |
- name: Install | |
run: yarn install --frozen-lockfile | |
- name: Lint | |
run: | | |
yarn lerna run lint | |
- name: Type Check | |
run: | | |
yarn lerna run typecheck | |
scala-test: | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Scala Test | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'yarn' | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Test | |
run: sbt coverage test coverageAggregate | |
- uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
node-test: | |
needs: [build, node-lint] | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
strategy: | |
matrix: | |
node: [ 18, 20, 21 ] | |
name: Node v${{ matrix.node }} Test | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node }} | |
cache: 'yarn' | |
- name: Install | |
run: yarn install --frozen-lockfile | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.js | |
path: modules/recheck-js/target/scala-2.13/recheck-js-opt/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.jar | |
path: modules/recheck-cli/target/scala-2.13/ | |
- name: Build | |
run: yarn lerna run build | |
- name: Test | |
# It needs two `--` actually: one is for Yarn and the latter is for Lerna. | |
run: yarn lerna run test -- -- --coverage | |
- uses: codecov/codecov-action@v4 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
native-build: | |
needs: [build] | |
if: github.ref_name == 'main' || startsWith(github.ref, 'refs/tags/') | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [macos-12, macos-14, ubuntu-22.04, windows-2022] | |
include: | |
- os: macos-12 | |
artifact_filename: recheck-darwin-x64 | |
local_path: modules/recheck-cli/target/native-image/recheck | |
- os: macos-14 | |
artifact_filename: recheck-darwin-arm64 | |
local_path: modules/recheck-cli/target/native-image/recheck | |
- os: ubuntu-22.04 | |
artifact_filename: recheck-linux-x64 | |
local_path: modules/recheck-cli/target/native-image/recheck | |
- os: windows-2022 | |
artifact_filename: recheck-win32-x64.exe | |
local_path: modules/recheck-cli/target/native-image/recheck.exe | |
runs-on: ${{ matrix.os }} | |
timeout-minutes: 5 | |
name: Scala Build (Native Binary) | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Cache Build Files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/target | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
- if: matrix.os != 'windows-2022' | |
run: sbt cli/nativeImage | |
- if: matrix.os == 'windows-2022' | |
name: Run sbt cli/nativeImage | |
shell: cmd | |
run: >- | |
"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat" && sbt cli/nativeImage | |
- uses: actions/upload-artifact@v4 | |
with: | |
path: ${{ matrix.local_path }} | |
name: ${{ matrix.artifact_filename }} | |
maven-release: | |
needs: [build, scala-test] | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Publish to Maven Central | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Cache Build Files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/target | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
- name: Publish | |
run: sbt ci-release | |
env: | |
PGP_PASSPHRASE: ${{ secrets.PGP_PASSPHRASE }} | |
PGP_SECRET: ${{ secrets.PGP_SECRET }} | |
SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }} | |
SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }} | |
npm-release: | |
needs: [build, native-build, node-test] | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Publish to NPM | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- uses: coursier/setup-action@v1 | |
with: | |
jvm: adoptium:1.21.0.2 | |
apps: sbt | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'yarn' | |
registry-url: 'https://registry.npmjs.org' | |
- name: Cache SBT | |
uses: actions/cache@v4 | |
with: | |
path: | | |
~/.ivy2/cache | |
~/.cache/coursier | |
~/.sbt | |
key: ${{ runner.os }}-sbt-${{ hashFiles('**/*.sbt') }} | |
- name: Cache Build Files | |
uses: actions/cache@v4 | |
with: | |
path: | | |
**/target | |
key: ${{ runner.os }}-build-${{ github.sha }} | |
- name: Install | |
run: yarn install --frozen-lockfile | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.js | |
path: modules/recheck-js/target/scala-2.13/recheck-js-opt/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.jar | |
path: packages/recheck-jar/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-darwin-x64 | |
path: packages/recheck-macos-x64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-darwin-arm64 | |
path: packages/recheck-macos-arm64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-linux-x64 | |
path: packages/recheck-linux-x64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-win32-x64.exe | |
path: packages/recheck-windows-x64/ | |
- name: Build | |
run: NODE_ENV=production yarn lerna run build | |
- name: Publish (beta) | |
if: contains(github.ref, '-beta') | |
run: yarn lerna publish --dist-tag next ${{ needs.build.outputs.version }} --yes | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
- name: Publish | |
if: "!contains(github.ref, '-beta')" | |
run: yarn lerna publish ${{ needs.build.outputs.version }} --yes | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }} | |
release: | |
needs: [maven-release, npm-release] | |
if: startsWith(github.ref, 'refs/tags/') | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Publish GitHub Release | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.jar | |
path: packages/recheck-jar/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-darwin-x64 | |
path: packages/recheck-macos-x64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-darwin-arm64 | |
path: packages/recheck-macos-arm64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-linux-x64 | |
path: packages/recheck-linux-x64/ | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck-win32-x64.exe | |
path: packages/recheck-windows-x64/ | |
- name: Rename files | |
run: | | |
mv packages/recheck-jar/recheck.jar recheck.jar | |
mv packages/recheck-macos-x64/recheck recheck-macos-x64 | |
mv packages/recheck-macos-arm64/recheck recheck-macos-arm64 | |
mv packages/recheck-linux-x64/recheck recheck-linux-x64 | |
mv packages/recheck-windows-x64/recheck.exe recheck-windows-x64.exe | |
- name: Release | |
uses: softprops/action-gh-release@v2 | |
with: | |
files: | | |
recheck.jar | |
recheck-macos-x64 | |
recheck-macos-arm64 | |
recheck-linux-x64 | |
recheck-windows-x64.exe | |
gh-pages-build: | |
needs: [build] | |
if: github.ref_name == 'main' | |
runs-on: ubuntu-22.04 | |
timeout-minutes: 5 | |
name: Build website | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '20' | |
cache: 'yarn' | |
- uses: actions/download-artifact@v4 | |
with: | |
name: recheck.js | |
path: modules/recheck-js/target/scala-2.13/recheck-js-opt/ | |
- name: Install | |
run: yarn install --frozen-lockfile | |
- name: Build | |
run: | | |
NODE_ENV=production yarn workspace recheck build | |
RECHECK_VERSION=${{ needs.build.outputs.version }} yarn workspace website doc | |
- name: Upload Pages artifact | |
uses: actions/upload-pages-artifact@v3 | |
with: | |
path: website/build | |
gh-pages-deploy: | |
needs: [gh-pages-build] | |
runs-on: ubuntu-latest | |
permissions: | |
pages: write | |
id-token: write | |
environment: | |
name: github-pages | |
url: ${{ steps.deployment.outputs.page_url }} | |
timeout-minutes: 5 | |
name: Deploy to GitHub Pages | |
steps: | |
- name: Deploy to GitHub Pages | |
id: deployment | |
uses: actions/deploy-pages@v4 |