Skip to content

Merge pull request #158 from datalab-mi/feat/kubernetes-nginx #39

Merge pull request #158 from datalab-mi/feat/kubernetes-nginx

Merge pull request #158 from datalab-mi/feat/kubernetes-nginx #39

# 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 frontend container
on:
push:
branches: [ "master","feat/kubernetes", "fix/frontend*", "feat/frontend*" ]
tags:
- 'v*'
# pull_request:
# branches: [ "master" ]
env:
REGISTRY: ghcr.io
APPLICATION: frontend
VIEWERJS_VERSION: 0.5.8
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.
- 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
needs: check
if: needs.check.outputs.docs_changed == 'true'
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 }}
target: prod
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: |
VIEWERJS_VERSION=${{ env.VIEWERJS_VERSION }}
APP_VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.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/frontend.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