Skip to content

add release v6.2.0.17 #57

add release v6.2.0.17

add release v6.2.0.17 #57

Workflow file for this run

name: Container Image CI
on:
push:
branches:
- release/v* # for new Omada controller versions
- bugfix/v* # for fixing build process issues
- deps/v* # for updating/patching dependencies (Mongo,Java,Ubuntu...)
- feature/v* # for adding new functionality
- workflow-dev # for testing workflow chnages on special branch
tags:
- v* # Triggers for tags prefixed with 'v'
env:
IMAGE_NAME: omada-controller
IMAGE_TAG:
IMAGE_TAG_SUFFIX:
TEST_IMAGE_TAG: "5.15.20" # Set static value only when pushing branch workflow-test
GITHUB_REGISTRY: ghcr.io/tinoha
DOCKERHUB_REGISTRY: docker.io/tihal
jobs:
build-and-push-image:
runs-on: ubuntu-latest
timeout-minutes: 15
permissions:
packages: write # Grants permission to push Docker images to GHCR
contents: read # Allows reading repository content (needed for actions/checkout)
steps:
- uses: actions/checkout@v4
name: Checkout repository
# Extract version based on trigger source (branch, tag or static)
- name: Set IMAGE_TAG (remove 'v' prefix)
run: |
set -e
if [[ -n "${{env.TEST_IMAGE_TAG}}" && "${GITHUB_REF_NAME}" == "workflow-dev" ]]; then
echo "IMAGE_TAG=${{ env.TEST_IMAGE_TAG }}" >> $GITHUB_ENV
echo "IMAGE_TAG_SUFFIX=-dev" >> $GITHUB_ENV
echo "IMAGE_TAG taken from static workflow variable"
elif [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
# Handle tag push, extract version from the tag
echo "IMAGE_TAG=${GITHUB_REF_NAME#v}" >> $GITHUB_ENV
echo "IMAGE_TAG extracted from tag"
elif [[ "${GITHUB_REF_NAME}" =~ .*\/v.* && "${GITHUB_REF_TYPE}" == "branch" ]]; then
# Handle feature branch (v*) push, extract version from the branch name
echo "IMAGE_TAG=${GITHUB_REF_NAME#*/v}" >> $GITHUB_ENV
echo "IMAGE_TAG_SUFFIX=-dev" >> $GITHUB_ENV
echo "IMAGE_TAG extracted from feature branch name"
else
echo "Using TEST_IMAGE_TAG as default"
echo "IMAGE_TAG=${{ env.TEST_IMAGE_TAG }}-dev" >> $GITHUB_ENV
echo "IMAGE_TAG_SUFFIX=-dev" >> $GITHUB_ENV
fi
- name: Check IMAGE_TAG version string is valid
run: |
if [[ ! "${{ env.IMAGE_TAG }}" =~ ^[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?(-.*)?$ ]]; then
echo "Current IMAGE_TAG value: ${{ env.IMAGE_TAG }}"
echo "Could not extract valid version string for the IMAGE_TAG variable. Exiting workflow." >&2
exit 1
fi
- name: Log in to GitHub container registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | podman login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Log in to Docker Hub container registry
if: startsWith(github.ref, 'refs/tags/')
run: echo "${{ secrets.DOCKERHUB_TOKEN }}" | podman login docker.io -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
- name: Build the container image (with podman)
run: ./build.sh --set-ver ${{ env.IMAGE_TAG }}
- name: List images
run: podman image ls
- name: Test run the v6.x container
if: startsWith(env.IMAGE_TAG, '6.')
timeout-minutes: 4
run: |
output=$(podman run --rm localhost/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} sudo tpeap start)
echo "$output"
echo "$output" | grep -q "Started successfully."
- name: Push to GitHub container registry (GHCR)
run: |
podman tag localhost/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}${{ env.IMAGE_TAG_SUFFIX }} && \
podman push ${{ env.GITHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}${{ env.IMAGE_TAG_SUFFIX }}
- name: Push to Docker Hub container registry
if: startsWith(github.ref, 'refs/tags/')
run: |
podman tag localhost/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} && \
podman push ${{ env.DOCKERHUB_REGISTRY }}/${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }}