feat(mis): 管理系统平台数据统计横坐标优化 (#1300) #6735
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: 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: ${{ vars.ACTION_RUNNER_LABEL }} | |
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/[email protected] | |
- 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/[email protected] | |
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: ${{ vars.ACTION_RUNNER_LABEL }} | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: pnpm/[email protected] | |
- 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: ${{ vars.ACTION_RUNNER_LABEL }} | |
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@0d4c9c5ea7693da7b068278f7b52bda2a190a446 | |
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: ${{ vars.ACTION_RUNNER_LABEL }} | |
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 |