跳到主要内容

Layotto GitHub Workflows

This document explains Layotto's four workflows in Github:

  • Layotto Env Pipeline 🌊
  • Layotto Dev Pipeline 🌊 (Before Merged)
  • Layotto Dev Pipeline 🌊 (After Merged)
  • Layotto Release Pipeline 🌊

The workflow contains one or more tasks, It improves the standardization and security of the code in layotto, simplifies repetitive steps of development / build / release. The following is a detailed explanation of the above four workflows.

Layotto Env Pipeline 🌊​

Job Task Content​

Layotto Env Pipeline is mainly responsible for the project of layotto and the specification of relevant environment,it current contains the following tasks:

  • Title Validation (Check the specification of PR title based on semantic style)
  • Quickstart Validation (Verification of QuickStart documents)
  • Update Stale Status (Update of issue / PR status)
  • License Validation (Verification of license)
  • DeadLink Validation (Check the deadLink in document)
  • CodeQL (Analysis of CodeQL)

Job Trigger Event​

Layotto Env Pipeline Task Trigger Events:

  • Title Validation:

    pull_request:
    types:
    - opened open PR
    - edited edit PR
    - synchronize synchronize PR
    - labeled PR add Label
    - unlabeled PR cancel Label
  • Quickstart Validation:

    push:
    branches:
    - main merge PR
    pull_request:
    branches:
    - main commit PR
  • Update Stale Status:

    on:
    schedule:
    - cron: '30 1 * * *' timed tasks
  • License Validation:

    push:
    branches:
    - main merge PR
    pull_request:
    branches:
    - main commit PR
  • DeadLink Validation:

    pull_request:
    branches:
    - main commit PR
  • CodeQL:

    schedule:
    - cron: '0 4 * * 5' timed tasks

Layotto Dev Pipeline 🌊 (Before Merged)​

release.png

Job Task Content​

The layotto dev pipeline (before merged) is mainly responsible for verifying the code after submitting the PR, which currently includes the following tasks:

  • Go Style Check : Check the style of the code
  • Go CI Linter : Perform linter specification of verification on the code
  • Go Unit Test : Unit test the code
  • Coverage Analysis : Coverage analysis of the code
  • Integrate with WASM : WASM integration test on the code
  • Integrate with Runtime : Run time integration test on the code
  • Darwin AMD64 Artifact : Build Darwin AMD64 binary verification for code
  • Darwin ARM64 Artifact : Build Darwin arm64 binary verification for code
  • Linux AMD64 Artifact : Build linux amd64 binary verification for code
  • Linux ARM64 Artifact : Build linux arm64 binary verification for code
  • Linux AMD64 WASM Artifact : Build linux AMD64 binary verification for layotto wasm

Job Trigger Event​

    on:
push:
branches: [main] merge PR
paths-ignore: ignore the following changes: docs directory files,markdown files
- 'docs/**'
- '**/*.md'
pull_request:
branches: "*" merge PR
paths-ignore: ignore the following changes: docs directory files,markdown files
- 'docs/**'
- '**/*.md'

Layotto Dev Pipeline 🌊 (After Merged)​

release.png

Job Task Content​

The layotto dev pipeline (after merged) is mainly responsible for the verification and release of the combined layotto code, which currently includes the following tasks:

  • Go Style Check : Check the style of the code
  • Go CI Linter : Perform linter specification of verification on the code
  • Go Unit Test : Unit test the code
  • Coverage Analysis : Coverage analysis of the code
  • Integrate with WASM : WASM integration test on the code
  • Integrate with Runtime : Run time integration test on the code
  • Darwin AMD64 Artifact : Build Darwin AMD64 binary verification for code
  • Darwin ARM64 Artifact : Build Darwin arm64 binary verification for code
  • Linux AMD64 Artifact : Build linux amd64 binary verification for code
  • Linux ARM64 Artifact : Build linux arm64 binary verification for code
  • Linux AMD64 WASM Artifact : Build linux AMD64 binary verification for layotto wasm
  • Linux AMD64 WASM Image : Release the latest version of layotto wasm image. The image specification is layotto/faas-amd64:latest
  • Linux AMD64 Image : Release the latest version of layotto wasm image. The image specification is layotto/layotto:latest
  • Linux ARMD64 Image : Release the latest version of layotto wasm image. The image specification is layotto/layotto.arm64:latest

Job Trigger Event​

    on:
push:
branches: [main] merge PR
paths-ignore: ignore the following changes: docs directory files,markdown files
- 'docs/**'
- '**/*.md'
pull_request:
branches: "*" create a PR
paths-ignore: ignore the following changes: docs directory files,markdown files
- 'docs/**'
- '**/*.md'

Layotto Release Pipeline 🌊​

release.png

Job Task Content​

The layotto release pipeline is mainly responsible for the release and verification of the new version of layotto, which currently includes the following tasks :

  • Go Style Check : Check the style of the code
  • Go CI Linter : Perform linter specification of verification on the code
  • Go Unit Test : Unit test the code
  • Coverage Analysis : Coverage analysis of the code
  • Integrate with WASM : WASM integration test on the code
  • Integrate with Runtime : Run time integration test on the code
  • Darwin AMD64 Artifact : Build Darwin AMD64 binary verification for code
  • Darwin ARM64 Artifact : Build Darwin arm64 binary verification for code
  • Linux AMD64 Artifact : Build linux amd64 binary verification for code
  • Linux ARM64 Artifact : Build linux arm64 binary verification for code
  • Linux AMD64 WASM Artifact : Build linux AMD64 binary verification for layotto wasm
  • Linux AMD64 WASM Image : Release the latest version of layotto wasm image. The image specification is layotto/faas-amd64:{latest_tagname}
  • Linux AMD64 Image : Release the latest version of layotto wasm image. The image specification is layotto/layotto:{latest_tagname}
  • Linux ARMD64 Image : Release the latest version of layotto wasm image. The image specification is layotto/layotto.arm64:{latest_tagname}

Job Trigger Event​

    on:
create Tag or Branch,combined with the following conditions

if: ${{ startsWith(github.ref, 'refs/tags/') }} changes to Tag(Ignore creation of new branch)

The configuration file of Layotto's GitHub workflow is in here