add release v6.2.0.17 #57
Workflow file for this run
This file contains hidden or 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: 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 }} |