Skip to content

ci

ci #105

Workflow file for this run

name: ci
# Version 2023.10
on:
schedule:
- cron: '0 3 * * 2,4'
push:
branches:
- "main"
# - "prep"
tags:
- 'v*' # All tags kick off a new container build Save history ad 5.0.x etc
# Run tests for any PRs.
# pull_request:
env:
BUILD_PLATFORM: |
linux/arm/v6
linux/arm/v7
linux/arm64
linux/amd64
jobs:
build:
env:
IMAGE_NAME: fritzbox_exporter
# Enable Docker Buildkit
DOCKER_BUILDKIT: 1
runs-on: ubuntu-latest
# Map a step output to a job output
outputs:
DOCKER_TAG: ${{ steps.tag_image.outputs.DOCKER_TAG }}
steps:
-
name: Set env
run: echo "RELEASE_VERSION=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
-
name: Test
run: |
echo $RELEASE_VERSION
echo ${{ env.RELEASE_VERSION }}
-
name: Checkout
uses: actions/checkout@v3
-
name: Login to Docker Hub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
-
name: Tag Image
id: tag_image
run: |
DOCKER_TAG=${{ env.RELEASE_VERSION }}
# Use Docker `latest` tag convention
[ "$DOCKER_TAG" == "master" ] && DOCKER_TAG=latest
[ "$DOCKER_TAG" == "main" ] && DOCKER_TAG=latest
echo DOCKER_TAG=$DOCKER_TAG
echo "DOCKER_TAG=$DOCKER_TAG" >> "$GITHUB_ENV"
-
name: Build and push
uses: docker/build-push-action@v4
with:
context: .
file: ./Dockerfile
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ env.IMAGE_NAME }}:${{ env.DOCKER_TAG }}
platforms: ${{ env.BUILD_PLATFORM }}
build-args: |
RELEASE_VERSION=${{ env.RELEASE_VERSION }}