CSV Provider Migration #4
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
# /******************************************************************************** | |
# * Copyright (c) 2022,2023 Contributors to the Eclipse Foundation | |
# * | |
# * See the NOTICE file(s) distributed with this work for additional | |
# * information regarding copyright ownership. | |
# * | |
# * This program and the accompanying materials are made available under the | |
# * terms of the Apache License 2.0 which is available at | |
# * http://www.apache.org/licenses/LICENSE-2.0 | |
# * | |
# * SPDX-License-Identifier: Apache-2.0 | |
# ********************************************************************************/ | |
name: kuksa_csv_provider | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
workflow_dispatch: | |
concurrency: | |
group: ${{ github.ref }}-${{ github.workflow }} | |
cancel-in-progress: true | |
# Needed as default_workflow_permissions is "read" | |
permissions: | |
packages: write | |
jobs: | |
check_ghcr_push: | |
uses: eclipse-kuksa/kuksa-actions/.github/workflows/check_ghcr_push.yml@2 | |
secrets: inherit | |
run-csv-provider-tests: | |
name: "Run csv provider linter" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Run pylint (but accept errors for now) | |
run: | | |
pip3 install --no-cache-dir -r requirements.txt | |
pip3 install --no-cache-dir pylint | |
# First just show, never fail | |
pylint --exit-zero provider.py | |
# Fail on errors and above | |
pylint -E provider.py | |
build-csv-provider-image: | |
name: "Build csv provider image" | |
runs-on: ubuntu-latest | |
needs: check_ghcr_push | |
steps: | |
- name: Checkout Repository | |
uses: actions/checkout@v4 | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
# list of Docker images to use as base name for tags | |
images: | | |
ghcr.io/eclipse-kuksa/kuksa-csv-provider/csv-provider | |
# generate Docker tags based on the following events/attributes | |
tags: | | |
type=ref,event=branch | |
type=ref,event=pr | |
type=semver,pattern={{version}} | |
type=semver,pattern={{major}}.{{minor}} | |
type=semver,pattern={{major}} | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Log in to the Container registry | |
if: needs.check_ghcr_push.outputs.push == 'true' | |
uses: docker/#-action@v3 | |
with: | |
registry: ghcr.io | |
username: ${{ github.repository_owner }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Build CSV provider container and push to ghcr.io (and ttl.sh) | |
id: ghcr-build | |
if: needs.check_ghcr_push.outputs.push == 'true' | |
uses: docker/build-push-action@v5 | |
with: | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
file: ./Dockerfile | |
context: ./ | |
push: true | |
tags: | | |
${{ steps.meta.outputs.tags }} | |
ttl.sh/eclipse-kuksa/kuksa-csv-provider/csv-provider-${{github.sha}} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Build ephemeral CSV provider container and push to ttl.sh | |
if: needs.check_ghcr_push.outputs.push == 'false' | |
id: tmp-build | |
uses: docker/build-push-action@v5 | |
with: | |
platforms: | | |
linux/amd64 | |
linux/arm64 | |
file: ./Dockerfile | |
context: ./ | |
push: true | |
tags: ttl.sh/eclipse-kuksa/kuksa-csv-provider/csv-provider-${{github.sha}} | |
labels: ${{ steps.meta.outputs.labels }} | |
- name: Posting message | |
uses: eclipse-kuksa/kuksa-actions/post-container-location@2 | |
with: | |
image: ttl.sh/eclipse-kuksa/kuksa-csv-provider/csv-provider-${{github.sha}} |