A github continuous integration and continuous deployment, built-in java
, rust
, golang
, node
different programming languages reusable workflow.
For Java projects that use gradle as a build tool, it provides integrated configuration, supporting single applications
, cloud services
, single project libraries
, and multi-project libraries
.
name: rust
on:
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [closed]
jobs:
setup:
uses: heliannuuthus/integrate-deploy/.github/workflows/call-rust-setup.yml
with:
workdir: "tests/rust/"
lint:
if: ${{ github.event.pull_request.merged != true }}
needs: setup
uses: heliannuuthus/integrate-deploy/.github/workflows/call-rust-lint.yml
with:
workdir: "tests/rust/"
build:
if: ${{ always() && needs.setup.result == 'success' }}
needs: [setup, lint]
uses: heliannuuthus/integrate-deploy/.github/workflows/call-rust-build.yml
with:
workdir: "tests/rust/"
containeraized:
if: ${{ always() && github.event.pull_request.merged == true }}
needs: build
permissions:
contents: read
packages: write
uses: heliannuuthus/integrate-deploy/.github/workflows/call-containerize.yml
with:
version: ${{ needs.build.outputs.version }}
workdir: "tests/rust/"
target: "tests/rust/target/"
use Dockerfile to build the project image, the default build jar package name is
app.jar
, output directory isbuild/libs/
name: gradle-cloud
on:
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [closed]
jobs:
lint:
if: ${{ github.event.pull_request.merged != true }}
uses: heliannuuthus/integrate-deploy/.github/workflows/call-gradle-lint.yml
with:
workdir: "tests/gradle-cloud/"
build:
if: always()
needs: lint
uses: heliannuuthus/integrate-deploy/.github/workflows/call-gradle-build.yml
with:
workdir: "tests/gradle-cloud/"
containerize:
if: ${{ always() && github.event.pull_request.merged == true }}
needs: build
permissions:
contents: read
packages: write
uses: heliannuuthus/integrate-deploy/.github/workflows/call-containerize.yml
with:
workdir: "tests/gradle-cloud/"
version: ${{ needs.build.outputs.version }}
target: "tests/gradle-cloud/build"
publish the package to github pakcage
name: gradle-library
on:
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [closed]
jobs:
lint:
if: ${{ github.event.pull_request.merged != true }}
uses: heliannuuthus/integrate-deploy/.github/workflows/call-gradle-lint.yml
with:
workdir: "tests/gradle-library/"
build:
if: always()
needs: lint
uses: heliannuuthus/integrate-deploy/.github/workflows/call-gradle-build.yml
with:
workdir: "tests/gradle-library/"
containerize:
if: ${{ always() && github.event.pull_request.merged == true }}
needs: build
permissions:
contents: read
packages: write
uses: heliannuuthus/integrate-deploy/.github/workflows/call-gradle-publish.yml
with:
workdir: "tests/gradle/"
user: ${{ github.actor }}
secrets:
token: ${{ secrets.GITHUB_TOKEN }}
name: golang
on:
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [closed]
jobs:
setup:
uses: heliannuuthus/integrate-deploy/.github/workflows/call-golang-setup.yml
with:
workdir: "tests/golang/"
lint:
if: ${{ github.event.pull_request.merged != true }}
needs: setup
uses: heliannuuthus/integrate-deploy/.github/workflows/call-golang-lint.yml
with:
workdir: "tests/golang/"
build:
if: ${{ always() && needs.setup.result == 'success' }}
needs: [setup, lint]
uses: heliannuuthus/integrate-deploy/.github/workflows/call-golang-build.yml
with:
workdir: "tests/golang/"
GOOS: linux
GOARCH: amd64
ENTRANCE: cmd/main.go
containeraized:
if: ${{ always() && github.event.pull_request.merged }}
needs: build
permissions:
contents: read
packages: write
uses: heliannuuthus/integrate-deploy/.github/workflows/call-containerize.yml
with:
version: ${{ needs.build.outputs.version }}
workdir: "tests/golang/"
target: "tests/golang/build"
name: node
on:
pull_request:
types: [opened, reopened, synchronize]
pull_request_target:
types: [closed]
jobs:
setup:
uses: heliannuuthus/integrate-deploy/.github/workflows/call-node-setup.yml
with:
workdir: "tests/node/"
lint:
if: ${{ github.event.pull_request.merged != true }}
needs: setup
uses: heliannuuthus/integrate-deploy/.github/workflows/call-node-lint.yml
with:
workdir: "tests/node/"
PNPM_STORE: ${{ needs.setup.outputs.PNPM_STORE }}
build:
if: ${{ always() && needs.setup.result == 'success' }}
needs: [setup, lint]
uses: heliannuuthus/integrate-deploy/.github/workflows/call-node-build.yml
with:
workdir: "tests/node/"
PNPM_STORE: ${{ needs.setup.outputs.PNPM_STORE }}