Collection of commonly used GitHub workflows.
This workflow will build and push images to Dockerhub. For any change an image with the commit SHA as tag will be published. For releases the release tag will be used to tag the image.
jobs:
build_image:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
docker_build_args: "--no-cache"
docker_file_path: "./"
image_name: "example/image"
secrets:
dockerhub_user: ${{ secrets.DOCKERHUB_USERNAME }}
dockerhub_token: ${{ secrets.DOCKERHUB_TOKEN }}
To ensure code quality use the provided golang_quality
workflow. It runs multiple analysis tools.
permissions:
# Required by golangci job to write annotations to the merge request.
contents: read
checks: write
jobs:
golang_quality:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
workdir: "golang/application/subfolder/"
To execute golang tests use the provided golang_test
workflow.
jobs:
golang_test:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
workdir: "tests/golang_test/"
services: '{"database": {"image": "mysql:8.0", "ports": ["3306:3306"]}}'
env: '{"TESTENV": "value"}'
Add the following job to your CI to ensure jinja
generated files are always up to date. Uses makejinja
for templating.
jobs:
jinja:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
workdir: "tests/jinja/"
Render an OpenAPI 2 spec with redoc
. The spec file needs to be present in the given artifact. The rendered index.html
will be added to the artifact rendered-api-docu
.
jobs:
render:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
spec_artifact_name: spec
spec_artifact_path: tests/openapi2/
spec_filename: petstore.yaml
Generate OpenAPI 2 spec file based on swag
compatible annotiations in the source code.
jobs:
build:
uses: CubicrootXYZ/Workflows/.github/workflows/[email protected]
with:
entrypoint: cmd/main.go
workdir: ./