Apt es #24
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
# 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 |