-
Notifications
You must be signed in to change notification settings - Fork 1
141 lines (129 loc) · 4.47 KB
/
elasticsearch-github.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# This workflow will install Python dependencies, run tests and lint with a single version of Python
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
name: Deploy elasticsearch container
on:
push:
branches: [ "master","feat/kubernetes*" ,"feat/elastic-*"]
tags:
- 'v*'
# pull_request:
# branches: [ "master" ]
env:
REGISTRY: ghcr.io
APPLICATION: elasticsearch
ES_VERSION: 7.17.0
IMAGE_NAME: ${{ github.repository }}
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
check:
name: ≠ Check files
runs-on: ubuntu-latest
outputs:
docs_changed: ${{ steps.changed-files-specific.outputs.any_changed }}
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 2 # OR "2" -> To retrieve the preceding commit.
submodules: 'true'
- name: Get changed files in the ${{ env.APPLICATION }} folder
id: changed-files-specific
uses: tj-actions/changed-files@v34
with:
files: |
${{ env.APPLICATION }}/**
- name: Run step if any file(s) in the docs folder change
if: steps.changed-files-specific.outputs.any_changed == 'true'
run: |
echo "One or more files in the docs folder has changed."
echo "List all the files that have changed: ${{ steps.changed-files-specific.outputs.all_changed_files }}"
build:
name: 🐋 Save docker image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
#if: github.ref == 'refs/heads/master'
#if: github.ref_type == 'tag' && github.ref == 'refs/heads/master'
steps:
-
uses: actions/checkout@v3
-
name: Set up QEMU
uses: docker/setup-qemu-action@v2
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Login to grcio
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
-
name: Extract metadata (tags, labels) for Docker
id: meta
uses: docker/metadata-action@v4
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-${{ env.APPLICATION }}
flavor: |
latest=auto
tags: |
type=schedule
# branch event
type=ref,enable=true,priority=600,prefix=,suffix=,event=branch
# tag event
# type=ref,enable=true,priority=600,prefix=,suffix=,event=tag
# pull request event
type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=pr
# push tag version of tagged branch
type=semver,pattern={{version}},event=tag
# set latest tag for master branch
type=raw,value=latest,enable=${{ github.ref == format('refs/heads/{0}', 'master') }}
-
name: Build and Push (latest)
uses: docker/build-push-action@v3
with:
context: ${{ env.APPLICATION }}
platforms: linux/amd64
push: true
tags: ${{ steps.meta.outputs.tags }}
cache-from: type=gha
cache-to: type=gha,mode=max
labels: ${{ steps.meta.outputs.labels }}
build-args: |
ES_VERSION=${{ env.ES_VERSION }}
# deploy:
# name: 🚀 Deploy
# if: github.ref == 'refs/heads/master'
# needs: [ check, build ]
# runs-on: ubuntu-latest
# steps:
# - name: Sleep for 30 seconds (to let the new image to be saved)
# run: sleep 30s
# shell: bash
# - name: Set the Kubernetes context
# uses: azure/k8s-set-context@v3
# with:
# method: service-account
# k8s-url: https://${{ secrets.KUBERNETES_URL }}
# k8s-secret: ${{ secrets.KUBERNETES_TOKEN }}
# - name: Checkout source code
# uses: actions/checkout@v3
# - name: Deploy to the Kubernetes cluster
# uses: azure/k8s-deploy@v4
# with:
# namespace: pavima
# action: deploy
# manifests: |
# deployments/faust.yaml
# images: |
# ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}-${{ env.APPLICATION }}
# # try to solve Warning: Failed to get dockerfile path for image ghcr.io
# pull-images: false
# imagePullSecrets: |
# ghcr-login-secret