Fix update limitation for response body template #326
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: Main project workflow | |
name: CI | |
on: | |
# Build on demand: | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'Docker images tag' | |
required: true | |
hversion: | |
description: 'Helm charts version' | |
required: true | |
push: | |
# Sequence of patterns matched against refs/heads | |
branches: | |
# Push events on master branch | |
- master | |
# And also in workflow test branch | |
- wf-test | |
# Sequence of patterns matched against refs/tags | |
tags: | |
- v*.*.* # Push events to vx.y.z | |
pull_request: | |
branches: | |
- master | |
# Publish `vx.y.z` tags as releases: | |
#release: | |
# types: [published] | |
jobs: | |
format_style: | |
name: Check source code format | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Check out the repo | |
uses: actions/checkout@v2 | |
- | |
name: Run frankwolf format | |
run: | | |
sources=$(find . -name "*.hpp" -o -name "*.cpp") | |
#docker run -i --rm -v $PWD:/data frankwolf/astyle ${sources} | |
#git diff --exit-code | |
# docker cannot write on host directory: | |
! docker run -i --rm -v $PWD:/data frankwolf/astyle --dry-run ${sources} | grep ^Formatted | |
build_and_push_docker_images_as_local: | |
needs: format_style | |
name: Build and push docker images as local | |
runs-on: ubuntu-latest | |
#if: github.event_name == 'push' | |
steps: | |
- | |
name: Check out the repo | |
uses: actions/checkout@v2 | |
- | |
name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
# logout at job end: | |
logout: true | |
- | |
name: Login to GitHub Container Registry | |
uses: docker/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# logout at job end: | |
logout: true | |
- | |
name: Build local builder image | |
id: docker_build1 | |
uses: docker/build-push-action@v2 | |
with: | |
tags: ghcr.io/testillano/h2agent_builder:local | |
file: Dockerfile.build | |
build-args: base_os=ubuntu | |
context: . | |
push: true | |
- | |
name: Image digest | |
run: echo ${{ steps.docker_build1.outputs.digest }} | |
- | |
name: Build local project image | |
id: docker_build2 | |
uses: docker/build-push-action@v2 | |
with: | |
tags: ghcr.io/testillano/h2agent:local | |
file: Dockerfile | |
build-args: | | |
base_os=ubuntu | |
base_tag=local | |
context: . | |
push: true | |
- | |
name: Image2 digest | |
run: echo ${{ steps.docker_build2.outputs.digest }} | |
- | |
name: Build local ct image | |
id: docker_build3 | |
uses: docker/build-push-action@v2 | |
with: | |
tags: ghcr.io/testillano/ct-h2agent:local | |
file: ct/Dockerfile | |
context: ct | |
push: true | |
- | |
name: Image3 digest | |
run: echo ${{ steps.docker_build3.outputs.digest }} | |
- | |
name: Build local project training image | |
id: docker_build4 | |
uses: docker/build-push-action@v2 | |
with: | |
tags: ghcr.io/testillano/h2agent_training:local | |
file: Dockerfile.training | |
build-args: | | |
base_os=ubuntu | |
img_tag=local | |
context: . | |
push: true | |
- | |
name: Image4 digest | |
run: echo ${{ steps.docker_build4.outputs.digest }} | |
build_coverage: | |
needs: build_and_push_docker_images_as_local | |
name: Build local coverage image | |
runs-on: ubuntu-latest | |
steps: | |
- | |
name: Check out the repo | |
uses: actions/checkout@v2 | |
- | |
name: Login to GitHub Container Registry | |
uses: docker/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# logout at job end: | |
logout: true | |
- | |
name: Build and push coverage image | |
id: docker_build5 | |
uses: docker/build-push-action@v2 | |
with: | |
tags: ghcr.io/testillano/h2agent:latest-cov | |
file: Dockerfile.coverage | |
build-args: | | |
base_os=ubuntu | |
base_tag=local | |
context: . | |
push: true | |
- | |
name: Image digest | |
run: echo ${{ steps.docker_build5.outputs.digest }} | |
unit_tests_and_coverage: | |
needs: build_coverage | |
name: Run unit tests and upload coverage info | |
runs-on: ubuntu-latest | |
container: | |
image: ghcr.io/testillano/h2agent:latest-cov | |
options: "--entrypoint sh" | |
steps: | |
- | |
name: Run coverage script | |
run: /var/coverage.sh | |
- | |
name: Upload coverage to Coveralls | |
uses: coverallsapp/github-action@master | |
with: | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
path-to-lcov: total-coverage.info | |
push_docker_images_as_latest: | |
needs: unit_tests_and_coverage | |
name: Push docker images to Docker/Github Hubs as latest | |
runs-on: ubuntu-latest | |
#if: github.event_name == 'push' | |
steps: | |
- | |
name: Login to Docker Hub | |
uses: docker/login-action@v1 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
# logout at job end: | |
logout: true | |
- | |
name: Login to GitHub Container Registry | |
uses: docker/login-action@v1 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
# logout at job end: | |
logout: true | |
- | |
name: Push images manually | |
run: | | |
# workflow dispatch event: | |
image_tag=${{ github.event.inputs.tag }} | |
echo Workflow dispatch image_tag=$image_tag | |
# Strip git ref prefix from version | |
[ -z "${image_tag}" ] && image_tag=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') | |
# Strip "v" prefix from tag name | |
[[ "${{ github.ref }}" == "refs/tags/"* ]] && image_tag=$(echo $image_tag | sed -e 's/^v//') | |
# Use Docker `latest` tag convention | |
[ "$image_tag" == "master" ] && image_tag=latest | |
echo Processed image_tag=$image_tag | |
for hub in docker.io ghcr.io | |
do | |
for imgbn in h2agent_builder h2agent ct-h2agent h2agent_training | |
do | |
echo "Push '${imgbn}' local image from 'ghcr.io' hub" | |
docker pull ghcr.io/testillano/${imgbn}:local | |
echo "Push '${imgbn}' image to '${hub}' hub" | |
docker tag ghcr.io/testillano/${imgbn}:local ${hub}/testillano/${imgbn}:${image_tag} | |
docker push ${hub}/testillano/${imgbn}:${image_tag} | |
done | |
done | |
helm_publish: | |
needs: push_docker_images_as_latest | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v2 | |
- name: Publish Helm charts | |
uses: stefanprodan/helm-gh-pages@master | |
with: | |
token: ${{ secrets.PERSONAL_ACCESS_TOKEN_REPO_FULL }} | |
charts_dir: helm | |
repository: helm | |
branch: gh-pages | |
chart_version: ${{ github.event.inputs.hversion }} |