Skip to content

Commit 4d203d0

Browse files
committed
draft for CI
Signed-off-by: Luiz Oliveira <ziuloliveira@gmail.com>
1 parent 58d5820 commit 4d203d0

File tree

5 files changed

+236
-0
lines changed

5 files changed

+236
-0
lines changed

.github/GitVersion.yaml

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
patch-version-bump-message: \+semver:\s?(develop)
2+
branches:
3+
develop:
4+
mode: ContinuousDelivery
5+
label: rc-
6+
increment: Minor
7+
prevent-increment:
8+
when-current-commit-tagged: false
9+
track-merge-target: true
10+
track-merge-message: true
11+
regex: ^dev(elop)?(ment)?$
12+
source-branches: []
13+
tracks-release-branches: true
14+
is-release-branch: false
15+
is-main-branch: false
16+
pre-release-weight: 0
17+
main:
18+
label: ''
19+
increment: Patch
20+
prevent-increment:
21+
of-merged-branch: true
22+
track-merge-target: false
23+
track-merge-message: true
24+
regex: ^master$|^main$
25+
source-branches: [ 'develop' ]
26+
is-source-branch-for: []
27+
tracks-release-branches: false
28+
is-release-branch: false
29+
is-main-branch: true
30+
pre-release-weight: 55000
31+
release:
32+
mode: ManualDeployment
33+
label: beta
34+
increment: Minor
35+
prevent-increment:
36+
of-merged-branch: true
37+
when-current-commit-tagged: false
38+
track-merge-target: false
39+
regex: ^releases?[/-](?<BranchName>.+)
40+
source-branches:
41+
- main
42+
- support
43+
is-source-branch-for: []
44+
tracks-release-branches: false
45+
is-release-branch: true
46+
is-main-branch: false
47+
pre-release-weight: 30000
48+
feature:
49+
mode: ManualDeployment
50+
label: '{BranchName}'
51+
increment: Inherit
52+
prevent-increment:
53+
when-current-commit-tagged: false
54+
track-merge-message: true
55+
regex: ^feature(s)?[/-](?<BranchName>.+)
56+
source-branches:
57+
- develop
58+
- main
59+
- release
60+
- support
61+
- hotfix
62+
is-source-branch-for: []
63+
is-main-branch: false
64+
pre-release-weight: 30000
65+
pull-request:
66+
mode: ContinuousDelivery
67+
label: pr-
68+
increment: Minor
69+
prevent-increment:
70+
of-merged-branch: true
71+
when-current-commit-tagged: false
72+
label-number-pattern: '[/-](?<number>\d+)'
73+
track-merge-message: true
74+
regex: ^(pull|pull\-requests|pr)[/-]
75+
source-branches:
76+
- develop
77+
- main
78+
- release
79+
- feature
80+
- support
81+
- hotfix
82+
is-source-branch-for: []
83+
pre-release-weight: 30000
84+
hotfix:
85+
mode: ManualDeployment
86+
label: beta
87+
increment: Inherit
88+
prevent-increment:
89+
when-current-commit-tagged: false
90+
regex: ^hotfix(es)?[/-](?<BranchName>.+)
91+
source-branches:
92+
- main
93+
- support
94+
- develop
95+
is-source-branch-for: []
96+
is-release-branch: true
97+
is-main-branch: false
98+
pre-release-weight: 30000
99+
support:
100+
label: ''
101+
increment: Patch
102+
prevent-increment:
103+
of-merged-branch: true
104+
track-merge-target: false
105+
regex: ^support[/-](?<BranchName>.+)
106+
source-branches:
107+
- main
108+
is-source-branch-for: []
109+
tracks-release-branches: false
110+
is-release-branch: false
111+
is-main-branch: true
112+
pre-release-weight: 55000

.github/workflows/build.yaml

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
name: Building
2+
3+
on:
4+
workflow_call:
5+
outputs:
6+
version:
7+
description: version created on this build
8+
value: ${{ jobs.build.outputs.version }}
9+
10+
jobs:
11+
versioning:
12+
uses: ./.github/workflows/version.yaml
13+
with:
14+
runner: ubuntu-latest
15+
test:
16+
uses: ./.github/workflows/tests.yaml
17+
build:
18+
name: Building
19+
runs-on: ubuntu-latest
20+
needs: [versioning, test]
21+
outputs:
22+
version: ${{needs.versioning.outputs.FullSemVer}}
23+
steps:
24+
- uses: actions/checkout@v4
25+
- name: Docker Login
26+
uses: docker/login-action@v3
27+
with:
28+
registry: ${{ secrets.DOCKER_REGISTRY }}
29+
username: ${{ secrets.DOCKER_USERNAME }}
30+
password: ${{ secrets.DOCKER_PASSWORD }}
31+
32+
- name: Set up QEMU
33+
uses: docker/setup-qemu-action@v3
34+
- name: Set up Docker Buildx
35+
uses: docker/setup-buildx-action@v3
36+
- name: Docker Build
37+
uses: docker/build-push-action@v6
38+
with:
39+
context: .
40+
platforms: linux/amd64,linux/arm64
41+
push: true
42+
tags: |
43+
${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:${{ needs.versioning.outputs.FullSemVer }}
44+
${{ secrets.DOCKER_REGISTRY }}/${{ secrets.DOCKER_USERNAME }}/${{ secrets.DOCKER_REPOSITORY }}:latest

.github/workflows/cicd.yaml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
name: Swagger workflow
2+
on:
3+
push:
4+
branches:
5+
- main
6+
pull_request:
7+
branches:
8+
- main
9+
workflow_dispatch:
10+
11+
jobs:
12+
standard_flow:
13+
name: Standard Flow
14+
uses: ./.github/workflows/build.yaml

.github/workflows/tests.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Testing
2+
3+
on:
4+
workflow_call:
5+
6+
jobs:
7+
security:
8+
name: security
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- name: Secret Scanning
13+
uses: trufflesecurity/trufflehog@main
14+
with:
15+
base: ""
16+
head: ${{ github.ref_name }}
17+
extra_args: --results=verified,unknown

.github/workflows/version.yaml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Versioning
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
runner:
7+
description: "Runner Group Name"
8+
type: string
9+
required: false
10+
default: "ubuntu-latest"
11+
outputs:
12+
MajorMinorPatch:
13+
description: Major.Minor.Patch version
14+
value: ${{ jobs.version.outputs.MajorMinorPatch }}
15+
FullSemVer:
16+
description: Full semantic version
17+
value: ${{ jobs.version.outputs.FullSemVer }}
18+
19+
jobs:
20+
version:
21+
name: Find correct version
22+
runs-on: ${{ inputs.runner }}
23+
outputs:
24+
MajorMinorPatch: ${{ steps.output.outputs.MajorMinorPatch }}
25+
FullSemVer: ${{ steps.output.outputs.FullSemVer }}
26+
steps:
27+
- uses: actions/checkout@v4
28+
with:
29+
fetch-depth: 0
30+
- name: Install GitVersion
31+
uses: gittools/actions/gitversion/setup@v3.1.1
32+
with:
33+
versionSpec: '6.0.x'
34+
- name: Determine Version
35+
uses: gittools/actions/gitversion/execute@v3.1.1
36+
with:
37+
useConfigFile: true
38+
configFilePath: .github/GitVersion.yaml
39+
- id: output
40+
if: github.event_name != 'release'
41+
run: |
42+
if [[ "${{ github.event_name }}" != "release" ]]; then
43+
echo "MajorMinorPatch=${{ env.GitVersion_MajorMinorPatch }}" >> "$GITHUB_OUTPUT"
44+
echo "FullSemVer=${{ env.GitVersion_FullSemVer }}" >> "$GITHUB_OUTPUT"
45+
else
46+
echo "MajorMinorPatch=${GITHUB_REF#refs/*/}" >> "$GITHUB_OUTPUT"
47+
echo "FullSemVer=${GITHUB_REF#refs/*/}" >> "$GITHUB_OUTPUT"
48+
fi
49+
echo '${{ toJson(github) }}' | jq .

0 commit comments

Comments
 (0)