Skip to content

Commit b825ee1

Browse files
breaking: Upgrated the payments flow actions (#71)
* added snapshot-branch name to snapshot docker * removed azdo trigger from snapshot docker * added azure devops trigger action * removed azdo trigger * minor fix * fix docs for azdo trigger * flow docker snapshot: fix docs * updated documentation for flow release
1 parent a93315d commit b825ee1

File tree

6 files changed

+141
-128
lines changed

6 files changed

+141
-128
lines changed
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# azure-devops-trigger-pipeline
2+
3+
This action helps to triggers an Azure DevOps pipeline.
4+
5+
## Azure PAT
6+
7+
the PAT which is personal to a user (we still can't have a bot) and must have the following permissions:
8+
9+
* build: read & execute
10+
* code: read
11+
* release: read
12+
13+
## how to use
14+
15+
```yaml
16+
azure-devops-trigger:
17+
name: 🅰️ Azure DevOps Pipeline Trigger
18+
needs: payments-flow-release
19+
runs-on: ubuntu-22.04
20+
steps:
21+
- name: Trigger Azure DevOps Pipeline
22+
uses: pagopa/github-actions-template/azure-devops-trigger-pipeline@new-azdo-trigger-pipeline
23+
with:
24+
enable_azure_devops_step: 'true'
25+
azure_devops_project_url: 'https://dev.azure.com/pagopaspa/p4pa-projects'
26+
azure_devops_pipeline_name: 'p4pa-payhub-deploy-aks.deploy'
27+
azure_devops_pat: ${{ secrets.AZURE_DEVOPS_TOKEN }}
28+
azure_template_parameters: |
29+
{
30+
"APPS_TOP": "[p4pa-auth]",
31+
"POSTMAN_BRANCH": "${{ github.ref_name }}"
32+
}
33+
```
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: 🅰️ Azure Devops pipeline trigger
2+
description: 🅰️ Azure Devops pipeline trigger
3+
4+
inputs:
5+
enable_azure_devops_step:
6+
description: Are azure devops triggers enabled?
7+
default: "false"
8+
azure_devops_project_url:
9+
description: Azure devops project url like (e.g. `https://dev.azure.com/pagopaspa/arc-projects``)
10+
azure_devops_pipeline_name:
11+
description: Pipeline name inside the project (e.g. `arc-cittadini-deploy-aks.deploy`)
12+
azure_devops_pat:
13+
description: Personal secret azure devops PAT
14+
default: ''
15+
azure_template_parameters:
16+
description: Json attribute with all the parameters that must be send to the pipeline. See README for example (⚠️ this parameters must exists)
17+
18+
runs:
19+
using: "composite"
20+
steps:
21+
22+
#
23+
# AZDO
24+
#
25+
- name: 🤔 Check azure_devops_pat
26+
if: ${{ inputs.enable_azure_devops_step == 'true' }}
27+
shell: bash
28+
run: |
29+
if [ -z "${{ inputs.azure_devops_pat }}" ]; then
30+
echo "Error: azure_devops_pat is empty. This is required for triggering the Azure DevOps pipeline."
31+
exit 1
32+
fi
33+
34+
echo "🔨 Start launch trigger with Azure Devops"
35+
36+
- name: 🚂 Trigger Azure DevOps pipeline
37+
if: inputs.enable_azure_devops_step == 'true'
38+
# https://github.com/pagopa/azure-pipelines/releases/tag/v2.0.0
39+
uses: pagopa/azure-pipelines@51d971651241601a348e4e2ed2431b8b7576d4f0
40+
with:
41+
azure-devops-project-url: ${{ inputs.azure_devops_project_url }}
42+
azure-pipeline-name: ${{ inputs.azure_devops_pipeline_name }}
43+
azure-devops-token: ${{ inputs.azure_devops_pat }}
44+
azure-pipeline-variables: '{"system.debug": "true"}'
45+
azure-template-parameters: ${{ inputs.azure_template_parameters }}

payments-flow-docker-snapshot/README.md

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -5,49 +5,65 @@ Allows to build docker image with the follow tags:
55
- snapshot
66
- snapshot-(branch name)
77

8-
and if runned manually, create a fake tag called `develop-snapshot`
8+
and if runned manually, create a fake tag called `develop-snapshot` + the previous tag.
99

1010
## how to use
1111

1212
```yaml
13-
name: 📦 Payments Snapshot docker
13+
name: 📦 Flow Snapshot Docker
1414

1515
on:
1616
push:
1717
branches-ignore:
18+
- 'develop'
19+
- 'uat'
1820
- 'main'
1921
paths-ignore:
2022
- 'CODEOWNERS'
2123
- '**.md'
2224
- '.**'
2325
workflow_dispatch:
26+
inputs:
27+
docker_build_enabled:
28+
description: 'Enable Docker build'
29+
required: false
30+
default: 'true'
31+
azdo_trigger_enabled:
32+
description: 'Enable Azure DevOps trigger'
33+
required: false
34+
default: 'true'
35+
deploy_aks_branch:
36+
description: 'argocd deploy aks branch name'
37+
required: false
38+
default: 'main'
2439

2540
env:
41+
# branch choosed by workflow_dispatch or by push event
2642
CURRENT_BRANCH: ${{ github.event.inputs.branch || github.ref_name }}
2743

2844
jobs:
29-
payments-flow-docker-snapshot:
45+
checkout:
46+
name: 🔖 Checkout Repository
3047
runs-on: ubuntu-22.04
31-
environment: dev
3248
steps:
33-
- name: 🔖 Checkout code
34-
# https://github.com/actions/checkout/releases/tag/v4.2.1
49+
- name: Checkout code
3550
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
3651
with:
3752
ref: ${{ env.CURRENT_BRANCH }}
3853

39-
- name: 📦 Run Snapshot Docker Build/Push & Trigger
40-
# https://github.com/pagopa/github-actions-template/releases/tag/v1.16.0
41-
uses: pagopa/github-actions-template/payments-flow-docker-snapshot@main
54+
docker-build:
55+
name: 📦 Docker Build and Push
56+
needs: checkout
57+
runs-on: ubuntu-22.04
58+
if: ${{ github.event_name == 'push' || github.event.inputs.docker_build_enabled == 'true' }}
59+
steps:
60+
- name: Checkout code
61+
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
62+
with:
63+
ref: ${{ env.CURRENT_BRANCH }}
64+
65+
- name: Run Snapshot Docker Build/Push
66+
uses: pagopa/github-actions-template/payments-flow-docker-snapshot@new-azdo-trigger-pipeline
4267
with:
4368
current_branch: ${{ github.ref_name }}
44-
enable_azure_devops_step: 'true'
45-
azure_devops_project_url: 'https://dev.azure.com/pagopaspa/devopslab-projects'
46-
azure_devops_pipeline_name: 'devopslab-diego-deploy.deploy'
47-
azure_devops_pat: ${{ secrets.AZUREDEVOPS_PAT }}
48-
azure_template_parameters: |
49-
{
50-
"APPS": "[one-color]",
51-
"POSTMAN_BRANCH": "${{ github.ref_name }}"
52-
}
5369
```

payments-flow-docker-snapshot/action.yml

Lines changed: 1 addition & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -11,23 +11,6 @@ inputs:
1111
default: |
1212
maintainer=https://pagopa.it
1313
org.opencontainers.image.source=https://github.com/${{ github.repository }}
14-
enable_azure_devops_step:
15-
description: Are azure devops triggers enabled?
16-
required: false
17-
default: "false"
18-
azure_devops_project_url:
19-
description: Azure devops project url like (e.g. `https://dev.azure.com/pagopaspa/arc-projects``)
20-
required: false
21-
azure_devops_pipeline_name:
22-
description: Pipeline name inside the project (e.g. `arc-cittadini-deploy-aks.deploy`)
23-
required: false
24-
azure_devops_pat:
25-
description: Personal secret azure devops PAT
26-
required: false
27-
default: ''
28-
azure_template_parameters:
29-
description: Json attribute with all the parameters that must be send to the pipeline. See README for example (⚠️ this parameters must exists)
30-
required: false
3114
3215
runs:
3316
using: "composite"
@@ -48,7 +31,7 @@ runs:
4831
shell: bash
4932
run: |
5033
if [[ "${{ github.event_name }}" == "workflow_dispatch" ]]; then
51-
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:develop-latest,ghcr.io/${{ github.repository }}:snapshot" >> $GITHUB_OUTPUT
34+
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:develop-latest,ghcr.io/${{ github.repository }}:snapshot,ghcr.io/${{ github.repository }}:snapshot-${{ inputs.current_branch }}" >> $GITHUB_OUTPUT
5235
else
5336
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:snapshot,ghcr.io/${{ github.repository }}:snapshot-${{ inputs.current_branch }}" >> $GITHUB_OUTPUT
5437
fi
@@ -61,28 +44,3 @@ runs:
6144
push: true
6245
tags: ${{ steps.set_docker_tags.outputs.DOCKER_TAGS }}
6346
labels: ${{ inputs.docker_labels }}
64-
65-
#
66-
# AZDO
67-
#
68-
- name: 🤔 Check azure_devops_pat
69-
if: ${{ inputs.enable_azure_devops_step == 'true' }}
70-
shell: bash
71-
run: |
72-
if [ -z "${{ inputs.azure_devops_pat }}" ]; then
73-
echo "Error: azure_devops_pat is empty. This is required for triggering the Azure DevOps pipeline."
74-
exit 1
75-
fi
76-
77-
echo "🔨 Start launch trigger with Azure Devops"
78-
79-
- name: 🚂 Trigger Azure DevOps pipeline
80-
if: ${{ inputs.enable_azure_devops_step == 'true' }}
81-
# https://github.com/pagopa/azure-pipelines/releases/tag/v2.0.0
82-
uses: pagopa/azure-pipelines@51d971651241601a348e4e2ed2431b8b7576d4f0
83-
with:
84-
azure-devops-project-url: ${{ inputs.azure_devops_project_url }}
85-
azure-pipeline-name: ${{ inputs.azure_devops_pipeline_name }}
86-
azure-devops-token: ${{ inputs.azure_devops_pat }}
87-
azure-pipeline-variables: '{"system.debug": "true"}'
88-
azure-template-parameters: ${{ inputs.azure_template_parameters }}

payments-flow-release/README.md

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
# payments-flow-release
22

3-
Allows to make a release and build docker image with the follow tags:
3+
Allows to make a release and build a docker image with the follow tags:
44

5-
- develop-vX.Y.Z
6-
- uat-vX.Y.Z
5+
- develop-vX.Y.Z + develop-latest + latest
6+
- uat-vX.Y.Z + uat-latest
77
- vX.Y.Z
88

99
## how to use
1010

1111
```yaml
12-
name: 🚀 Payments release
12+
name: 🚀 Flow Release
1313

1414
on:
1515
push:
@@ -24,28 +24,24 @@ on:
2424
workflow_dispatch:
2525

2626
jobs:
27-
payments-flow-release:
27+
28+
checkout:
29+
name: 🔖 Checkout Repository
2830
runs-on: ubuntu-22.04
29-
environment: dev
3031
steps:
31-
- name: 🔖 Checkout code
32-
# https://github.com/actions/checkout/releases/tag/v4.2.1
32+
- name: Checkout code
3333
uses: actions/checkout@eef61447b9ff4aafe5dcd4e0bbf5d482be7e7871
3434
with:
3535
ref: ${{ github.ref_name }}
3636

37-
- name: 🚀 release + docker + azdo
38-
# https://github.com/pagopa/github-actions-template/releases/tag/v1.16.0
39-
uses: pagopa/github-actions-template/payments-flow-release@payments-release
37+
payments-flow-release:
38+
name: 🚀 Release
39+
runs-on: ubuntu-22.04
40+
needs: checkout
41+
steps:
42+
- name: 🚀 release + docker
43+
# https://github.com/pagopa/github-actions-template/releases/tag/v1.19.1
44+
uses: pagopa/github-actions-template/payments-flow-release@new-azdo-trigger-pipeline
4045
with:
4146
current_branch: ${{ github.ref_name }}
42-
enable_azure_devops_step: 'true'
43-
azure_devops_project_url: 'https://dev.azure.com/pagopaspa/devopslab-projects'
44-
azure_devops_pipeline_name: 'devopslab-diego-deploy.deploy'
45-
azure_devops_pat: ${{ secrets.AZUREDEVOPS_PAT }}
46-
azure_template_parameters: |
47-
{
48-
"APPS": "[one-color]",
49-
"POSTMAN_BRANCH": "${{ github.ref_name }}"
50-
}
5147
```

payments-flow-release/action.yml

Lines changed: 12 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,20 @@
1-
name: Payments release
2-
description: Payments release
1+
name: 🚀 Payments Release
2+
description: 🚀 Payments Release + Docker image
33

44
inputs:
55
current_branch:
66
description: Branch used to launch the action
77
required: true
8+
docker_build:
9+
description: Docker build
10+
required: false
11+
default: "true"
812
docker_labels:
913
description: Labels for docker push
1014
required: false
1115
default: |
1216
maintainer=https://pagopa.it
1317
org.opencontainers.image.source=https://github.com/${{ github.repository }}
14-
enable_azure_devops_step:
15-
description: Are azure devops triggers enabled?
16-
required: false
17-
default: "false"
18-
azure_devops_project_url:
19-
description: Azure devops project url like (e.g. `https://dev.azure.com/pagopaspa/arc-projects``)
20-
required: false
21-
azure_devops_pipeline_name:
22-
description: Pipeline name inside the project (e.g. `arc-cittadini-deploy-aks.deploy`)
23-
required: false
24-
azure_devops_pat:
25-
description: Personal secret azure devops PAT
26-
required: false
27-
default: ''
28-
azure_template_parameters:
29-
description: Json attribute with all the parameters that must be send to the pipeline. See README for example (⚠️ this parameters must exists)
30-
required: false
3118
3219
runs:
3320
using: "composite"
@@ -57,20 +44,23 @@ runs:
5744
#
5845
- name: 🔨 Set Docker tags
5946
id: set_docker_tags
60-
if: steps.release.outputs.new_release_published == 'true'
47+
if: steps.release.outputs.new_release_published == 'true' && inputs.docker_build == 'true'
6148
shell: bash
6249
run: |
6350
if [[ "${{ github.ref }}" == "refs/heads/develop" ]]; then
51+
# develop-latest, develop-vx.y.z, latest
6452
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:develop-v${{ steps.release.outputs.new_release_version }},ghcr.io/${{ github.repository }}:develop-latest,ghcr.io/${{ github.repository }}:latest" >> $GITHUB_OUTPUT
6553
elif [[ "${{ github.ref }}" == "refs/heads/uat" ]]; then
54+
# uat-vx.y.z, uat-latest
6655
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:uat-v${{ steps.release.outputs.new_release_version }},ghcr.io/${{ github.repository }}:uat-latest" >> $GITHUB_OUTPUT
6756
elif [[ "${{ github.ref }}" == "refs/heads/main" ]]; then
57+
# vx.y.z, latest
6858
echo "DOCKER_TAGS=ghcr.io/${{ github.repository }}:v${{ steps.release.outputs.new_release_version }}" >> $GITHUB_OUTPUT
6959
fi
7060
7161
- name: 🛃 Log in to the Github Container registry
7262
id: docker_login
73-
if: steps.release.outputs.new_release_published == 'true'
63+
if: steps.release.outputs.new_release_published == 'true' && inputs.docker_build == 'true'
7464
uses: docker/login-action@0d4c9c5ea7693da7b068278f7b52bda2a190a446 #v3.2.0
7565
with:
7666
registry: ghcr.io
@@ -79,35 +69,10 @@ runs:
7969

8070
- name: 📦 Build and push Docker image with release version
8171
id: docker_build_push
82-
if: steps.release.outputs.new_release_published == 'true'
72+
if: steps.release.outputs.new_release_published == 'true' && inputs.docker_build == 'true'
8373
uses: docker/build-push-action@1a162644f9a7e87d8f4b053101d1d9a712edc18c #v6.3.0
8474
with:
8575
context: .
8676
push: true
8777
tags: ${{ steps.set_docker_tags.outputs.DOCKER_TAGS }}
8878
labels: ${{ inputs.docker_labels }}
89-
90-
#
91-
# AZDO
92-
#
93-
- name: 🤔 Check azure_devops_pat
94-
if: ${{ inputs.enable_azure_devops_step == 'true' }}
95-
shell: bash
96-
run: |
97-
if [ -z "${{ inputs.azure_devops_pat }}" ]; then
98-
echo "Error: azure_devops_pat is empty. This is required for triggering the Azure DevOps pipeline."
99-
exit 1
100-
fi
101-
102-
echo "🔨 Start launch trigger with Azure Devops"
103-
104-
- name: 🚂 Trigger Azure DevOps pipeline
105-
if: inputs.enable_azure_devops_step == 'true' && steps.release.outputs.new_release_published == 'true'
106-
# https://github.com/pagopa/azure-pipelines/releases/tag/v2.0.0
107-
uses: pagopa/azure-pipelines@51d971651241601a348e4e2ed2431b8b7576d4f0
108-
with:
109-
azure-devops-project-url: ${{ inputs.azure_devops_project_url }}
110-
azure-pipeline-name: ${{ inputs.azure_devops_pipeline_name }}
111-
azure-devops-token: ${{ inputs.azure_devops_pat }}
112-
azure-pipeline-variables: '{"system.debug": "true"}'
113-
azure-template-parameters: ${{ inputs.azure_template_parameters }}

0 commit comments

Comments
 (0)