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: Build Docker Container with open data plugin installed | |
on: push | |
jobs: | |
build-container: | |
name: Build ${{ matrix.name }} Container | |
runs-on: ubuntu-latest | |
if: github.repository_owner == 'TandoorRecipes' | |
continue-on-error: ${{ matrix.continue-on-error }} | |
permissions: | |
contents: read | |
packages: write | |
strategy: | |
matrix: | |
include: | |
# Standard build config | |
- name: Standard | |
dockerfile: Dockerfile | |
platforms: linux/amd64,linux/arm64 | |
suffix: "" | |
continue-on-error: false | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get version number | |
id: get_version | |
run: | | |
if [[ "$GITHUB_REF" = refs/tags/* ]]; then | |
echo "VERSION=${GITHUB_REF/refs\/tags\//}" >> $GITHUB_OUTPUT | |
elif [[ "$GITHUB_REF" = refs/heads/beta ]]; then | |
echo VERSION=beta >> $GITHUB_OUTPUT | |
else | |
echo VERSION=develop >> $GITHUB_OUTPUT | |
fi | |
# clone open data plugin | |
- name: clone open data plugin repo | |
uses: actions/checkout@master | |
with: | |
repository: TandoorRecipes/open_data_plugin | |
ref: master | |
path: ./recipes/plugins/open_data_plugin | |
# Build Vue frontend | |
- uses: actions/setup-node@v4 | |
with: | |
node-version: '18' | |
cache: yarn | |
cache-dependency-path: vue/yarn.lock | |
- name: Install dependencies | |
working-directory: ./vue | |
run: yarn install --frozen-lockfile | |
- name: Build dependencies | |
working-directory: ./vue | |
run: yarn build | |
- name: Setup Open Data Plugin Links | |
working-directory: ./recipes/plugins/open_data_plugin | |
run: python setup_repo.py | |
- name: Build Open Data Frontend | |
working-directory: ./recipes/plugins/open_data_plugin/vue | |
run: yarn build | |
- name: Set up QEMU | |
uses: docker/setup-qemu-action@v3 | |
- name: Set up Buildx | |
uses: docker/setup-buildx-action@v3 | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
if: github.secret_source == 'Actions' | |
with: | |
username: ${{ secrets.DOCKER_USERNAME }} | |
password: ${{ secrets.DOCKER_PASSWORD }} | |
- name: Login to GitHub Container Registry | |
uses: docker/login-action@v3 | |
if: github.secret_source == 'Actions' | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ github.token }} | |
- name: Docker meta | |
id: meta | |
uses: docker/metadata-action@v5 | |
with: | |
images: | | |
vabene1111/recipes | |
ghcr.io/TandoorRecipes/recipes | |
flavor: | | |
latest=false | |
suffix=${{ matrix.suffix }} | |
tags: | | |
type=raw,value=latest,suffix=-open-data-plugin,enable=${{ startsWith(github.ref, 'refs/tags/') }} | |
type=semver,suffix=-open-data-plugin,pattern={{version}} | |
type=semver,suffix=-open-data-plugin,pattern={{major}}.{{minor}} | |
type=semver,suffix=-open-data-plugin,pattern={{major}} | |
type=ref,suffix=-open-data-plugin,event=branch | |
- name: Build and Push | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
file: ${{ matrix.dockerfile }} | |
pull: true | |
push: ${{ github.secret_source == 'Actions' }} | |
platforms: ${{ matrix.platforms }} | |
tags: ${{ steps.meta.outputs.tags }} | |
labels: ${{ steps.meta.outputs.labels }} | |
cache-from: type=gha | |
cache-to: type=gha,mode=max |