Skip to content

chore(deps): update dependency eslint to v9 #6412

chore(deps): update dependency eslint to v9

chore(deps): update dependency eslint to v9 #6412

name: Test, Build and Publish Projects
on:
workflow_dispatch:
pull_request:
branches: [master]
push:
tags:
- "v**"
- "ai-beta.**"
branches:
- master
concurrency: ${{ github.workflow }}-${{ github.ref }}
env:
GITHUB_CR: ghcr.io
# ALIYUN_CR: registry.cn-hangzhou.aliyuncs.com
# ALIYUN_PROJECT_NAME: scow
jobs:
test-version-packages:
name: Test and version packages
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- uses: actions/checkout@v4
with:
# changelog generation requires full history
# to track each changelog file to its submission commit
fetch-depth: 0
ref: ${{ github.event.pull_request.head.sha }}
- uses: pnpm/action-setup@v3.0.0
- uses: actions/setup-node@v4
with:
node-version: 20.x
cache: pnpm
- name: Install dependencies
run: pnpm i --frozen-lockfile
- name: Lint code
run: pnpm lint
- name: Generate SSH key pairs for test
if: vars.RUN_TESTS == 'true'
run: ssh-keygen -t rsa -q -f "$HOME/.ssh/id_rsa" -N ""
- name: Start dev env for db testing
if: vars.RUN_TESTS == 'true'
run: pnpm devenv
- name: Check running containers
if: vars.RUN_TESTS == 'true'
run: docker ps
- name: Prepare dev libs and code
if: vars.RUN_TESTS == 'true' || vars.RUN_RELEASE == 'true'
run: pnpm prepareDev
- name: Wait for ports
if: vars.RUN_TESTS == 'true'
uses: ifaxity/wait-on-action@v1.1.0
with:
log: true
verbose: true
resource: "tcp:localhost:3306 tcp:localhost:6379 tcp:localhost:389 tcp:localhost:6000 tcp:localhost:6001 tcp:localhost:6002"
- name: Run tests
if: vars.RUN_TESTS == 'true'
run: pnpm test:ci
- name: Upload test converage
uses: codecov/codecov-action@v4
if: vars.RUN_TESTS == 'true'
with:
files: ./libs/auth/coverage/lcov.info,./libs/ssh/coverage/lcov.info,./libs/libconfig/coverage/lcov.info,./libs/decimal/coverage/lcov.info,./libs/server/coverage/lcov.info,./apps/cli/coverage/lcov.info,./apps/auth/coverage/lcov.info,./apps/mis-server/coverage/lcov.info,./apps/portal-server/coverage/lcov.info,./apps/gateway/coverage/lcov.info,./apps/audit-server/coverage/lcov.info
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@v1
if: vars.RUN_RELEASE == 'true' && github.ref == 'refs/heads/master'
with:
version: pnpm ci:version
publish: pnpm ci:publish
createGithubReleases: false
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }}
scow-cli:
needs: test-version-packages
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pnpm/action-setup@v3.0.0
- uses: actions/setup-node@v4
with:
node-version: 18.x
cache: pnpm
- name: Install dependencies for scow-cli
run: pnpm i --frozen-lockfile --filter @scow/cli...
- name: Build scow-cli
run: pnpm build "--filter=@scow/cli"
- name: Archive scow-cli-x64
uses: actions/upload-artifact@v4
with:
name: scow-cli-x64
path: apps/cli/exe/cli-x64
- name: Archive scow-cli-arm64
uses: actions/upload-artifact@v4
with:
name: scow-cli-arm64
path: apps/cli/exe/cli-arm64
build-images:
needs: test-version-packages
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
strategy:
matrix:
include:
- name: scow
file: scow
build_args: ""
- name: docs
file: docs
build_args: BASE_PATH=/SCOW/
steps:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to the GitHub Container registry
uses: docker/login-action@5f4866a30a54f16a52d2ecb4a3898e9e424939cf
with:
registry: ${{ env.GITHUB_CR }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.GITHUB_CR }}/${{ github.repository }}/${{ matrix.name }}
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
build-args: ${{ matrix.build_args }}
tags: ${{ steps.meta.outputs.tags }}
file: docker/Dockerfile.${{ matrix.file }}
labels: ${{ steps.meta.outputs.labels }}
# only build arm64 in tag commits or branches with name starting with `arm-`
platforms: linux/amd64${{ (github.ref_type == 'tag' || startsWith(github.ref_name, 'arm-')) && ',linux/arm64' || '' }}
release:
runs-on: ubuntu-latest
needs:
- scow-cli
- build-images
if: github.ref_type == 'tag'
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Download cli-x64
uses: actions/download-artifact@v4
with:
name: scow-cli-x64
path: release/scow-cli
- name: Download cli-arm64
uses: actions/download-artifact@v4
with:
name: scow-cli-arm64
path: release/scow-cli
- name: Display structure of downloaded files
run: ls -R
working-directory: release
- name: Create release
uses: softprops/action-gh-release@v2
with:
name: SCOW ${{ startsWith(github.ref_name, 'ai-') && format('AI Beta {0}', github.ref_name) || github.ref_name }}
body_path: ${{ !startsWith(github.ref_name, 'ai-') && format('changelogs/{0}.md', github.ref_name) || null }}
generate_release_notes: ${{ startsWith(github.ref_name, 'ai-') }}
prerelease: ${{ startsWith(github.ref_name, 'ai-') }}
files: |
release/scow-cli/cli-x64
release/scow-cli/cli-arm64