Flujo CI - Build #15
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: "Flujo CI-Build" | |
run-name: "Flujo CI - Build" | |
on: | |
workflow_dispatch: | |
inputs: | |
cloud: | |
description: "Proveedor Cloud" | |
required: true | |
default: "AWS" | |
options: ["AWS", "GCP", "Azure"] | |
issue_comment: | |
types: [created] | |
jobs: | |
docker-aws: | |
if: | | |
(github.event.issue.pull_request && contains(github.event.comment.body, 'Build-AWS')) || | |
github.event.inputs.cloud == 'AWS' | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout repositorio" | |
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f #v3: v3.4.0 | |
- name: "Configurar QEMU" | |
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 #v2: v2.1.0 | |
- name: "Configurar Docker Buildx" | |
uses: docker/setup-buildx-action@4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c #v2: v2.5.0 | |
- name: "Configurar tag y etiquetas para ${{ github.ref }}" | |
run: | | |
if [ "$GITHUB_REF" == "refs/heads/master" ]; then | |
echo "DOCKER_TAG=latest" >> $GITHUB_ENV | |
else | |
echo "DOCKER_TAG=snapshot" >> $GITHUB_ENV | |
fi | |
echo "VCS_REF=`git rev-parse --short HEAD`" >> $GITHUB_ENV | |
echo "BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”`" >> $GITHUB_ENV | |
- name: "Configurar credenciales de AWS" | |
uses: aws-actions/configure-aws-credentials@e1e17a757e536f70e52b5a12b2e8d1d1c60e04ef #v2 #v2.0.0 | |
with: | |
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} | |
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
aws-region: ${{ vars.AWS_REGION }} | |
- name: "Autenticar en AWS ECR" | |
id: login-ecr-publico | |
uses: aws-actions/amazon-ecr-login@261a7de32bda11ba01f4d75c4ed6caf3739e54be #v1 #v1.5.3 | |
with: | |
registry-type: public | |
- name: "Compilar y Subir imagen de Docker" | |
env: | |
REGISTRY: ${{ steps.login-ecr-publico.outputs.registry }} | |
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4 #v4.0.0 | |
with: | |
context: . | |
file: ./Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: | | |
${{ env.REGISTRY }}/${{ vars.AWS_REGISTRY_ALIAS }}/${{ vars.AWS_REPOSITORY }}:${{ env.DOCKER_TAG }} | |
build-args: | | |
VCS_REF=${{ env.VCS_REF }} | |
BUILD_DATE=${{ env.BUILD_DATE }} | |
docker-gcp: | |
if: | | |
(github.event.issue.pull_request && contains(github.event.comment.body, 'Build-GCP')) || | |
github.event.inputs.cloud == 'GCP' | |
runs-on: ubuntu-latest | |
env: | |
PROJECT_ID: ${{ vars.GCP_PROJECT_ID }} | |
steps: | |
- name: "Checkout repositorio" | |
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f #v3: v3.4.0 | |
- name: "Configurar QEMU" | |
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 #v2: v2.1.0 | |
- name: "Configurar Docker Buildx" | |
uses: docker/setup-buildx-action@4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c #v2: v2.5.0 | |
- name: "Configurar tag y etiquetas para ${{ github.ref }}" | |
run: | | |
if [ "$GITHUB_REF" == "refs/heads/master" ]; then | |
echo "DOCKER_TAG=latest" >> $GITHUB_ENV | |
else | |
echo "DOCKER_TAG=snapshot" >> $GITHUB_ENV | |
fi | |
echo "VCS_REF=`git rev-parse --short HEAD`" >> $GITHUB_ENV | |
echo "BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”`" >> $GITHUB_ENV | |
- name: "Autenticar en GCP" | |
id: auth | |
uses: google-github-actions/auth@ef5d53e30bbcd8d0836f4288f5e50ff3e086997d #v1.0.0 | |
with: | |
token_format: access_token | |
workload_identity_provider: ${{ env.PROJECT_ID }} | |
service_account: ${{ secrets.GCP_SA_KEY }} | |
- name: "Autenticar en Artifact Registry" | |
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a #v2 #v2.1.0 | |
with: | |
registry: ${{ vars.GCP.REGISTRY}} | |
username: oauth2accesstoken | |
password: ${{ steps.auth.outputs.access_token }} | |
- name: "Compilar y Subir imagen de Docker" | |
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4 #v4.0.0 | |
with: | |
context: . | |
file: ./Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: | | |
${{ vars.GCP_REGION }}-${{ vars.GCP.REGISTRY}}/${{ vars.GCP_PROJECT_ID }}/${{ vars.GCP_REPOSITORY_NAME }}/${{ vars.GCP_IMAGE_NAME }}:${{ env.DOCKER_TAG }} | |
build-args: | | |
VCS_REF=${{ env.VCS_REF }} | |
BUILD_DATE=${{ env.BUILD_DATE }} | |
docker-azure: | |
if: | | |
(github.event.issue.pull_request && contains(github.event.comment.body, 'Build-Azure')) || | |
github.event.inputs.cloud == 'Azure' | |
runs-on: ubuntu-latest | |
steps: | |
- name: "Checkout repositorio" | |
uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f #v3: v3.4.0 | |
- name: "Configurar QEMU" | |
uses: docker/setup-qemu-action@e81a89b1732b9c48d79cd809d8d81d79c4647a18 #v2: v2.1.0 | |
- name: "Configurar Docker Buildx" | |
uses: docker/setup-buildx-action@4b4e9c3e2d4531116a6f8ba8e71fc6e2cb6e6c8c #v2: v2.5.0 | |
- name: "Configurar tag y etiquetas para ${{ github.ref }}" | |
run: | | |
if [ "$GITHUB_REF" == "refs/heads/master" ]; then | |
echo "DOCKER_TAG=latest" >> $GITHUB_ENV | |
else | |
echo "DOCKER_TAG=snapshot" >> $GITHUB_ENV | |
fi | |
echo "VCS_REF=`git rev-parse --short HEAD`" >> $GITHUB_ENV | |
echo "BUILD_DATE=`date -u +”%Y-%m-%dT%H:%M:%SZ”`" >> $GITHUB_ENV | |
- name: "Autenticar en Azure" | |
uses: azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 #v1 #v1.4.6 | |
with: | |
creds: ${{ env.AZURE_CREDENTIALS }} | |
- name: "Autenticar en Azure Container Registry" | |
uses: azure/docker-login@83efeb77770c98b620c73055fbb59b2847e17dc0 #v1 #v1.0.1 | |
with: | |
login-server: ${{ vars.AZURE_REGISTRY_NAME }} | |
username: ${{ secrets.AZURE_REGISTRY_USERNAME }} | |
password: ${{ secrets.AZURE_REGISTRY_PASSWORD }} | |
- name: "Compilar y Subir imagen de Docker" | |
uses: docker/build-push-action@3b5e8027fcad23fda98b2e3ac259d8d67585f671 #v4 #v4.0.0 | |
with: | |
context: . | |
file: ./Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
push: true | |
tags: | | |
${{ vars.AZURE_REGISTRY_NAME }}/${{ vars.AZURE_IMAGE_NAME }}:${{ env.DOCKER_TAG }} | |
build-args: | | |
VCS_REF=${{ env.VCS_REF }} | |
BUILD_DATE=${{ env.BUILD_DATE }} |