Skip to content

Bump docker/login-action from 4.1.0 to 4.2.0 (#40) #35

Bump docker/login-action from 4.1.0 to 4.2.0 (#40)

Bump docker/login-action from 4.1.0 to 4.2.0 (#40) #35

Workflow file for this run

# SPDX-License-Identifier: Apache-2.0
# Copyright 2024 Intel Corporation
name: GitHub release and Docker images
on:
push:
branches:
- main
tags:
- v*
jobs:
# CAUTION: Other actions depend on this name "tag-github"
tag-github:
runs-on: ubuntu-latest
if: github.repository_owner == 'opennetworkinglab'
outputs:
changed: ${{ steps.version-change.outputs.changed }}
version: ${{ steps.version-change.outputs.version }}
release_branch: ${{ steps.version-change.outputs.release_branch }}
version_branch: ${{ steps.version-change.outputs.version_branch }}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Get changes
id: version-file
env:
BEFORE_SHA: ${{ github.event.before }}
AFTER_SHA: ${{ github.event.after }}
run: |
if git diff --name-only "$BEFORE_SHA" "$AFTER_SHA" | grep VERSION; then
echo "changed=true" >> "$GITHUB_OUTPUT"
version_before=$(git show "$BEFORE_SHA":VERSION)
echo "version_before=$version_before" >> "$GITHUB_OUTPUT"
else
echo "VERSION file was not changed"
fi
- name: Validate change in version file
id: version-change
if: steps.version-file.outputs.changed == 'true'
env:
VERSION_BEFORE_FULL: ${{ steps.version-file.outputs.version_before }}
run: |
version=$(cat VERSION)
version_before_full="$VERSION_BEFORE_FULL"
version_before=${version_before_full::-4}
echo "version=$version"
echo "version_before=$version_before"
validate="^[0-9]+\.[0-9]+\.[0-9]+$"
if [[ "$version" =~ $validate ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
echo "version=$version" >> "$GITHUB_OUTPUT"
else
echo "Version change not for release"
fi
if [[ "$version_before" =~ $validate ]]; then
IFS='.' read -r major minor _patch <<< "$version"
IFS='.' read -r major_b minor_b _patch_b <<< "$version_before"
if [[ "$major" -ne "$major_b" ]] || [[ "$minor" -ne "$minor_b" ]]; then
version_branch="$major_b.$minor_b"
echo "release_branch=true" >> "$GITHUB_OUTPUT"
echo "version_branch=$version_branch" >> "$GITHUB_OUTPUT"
fi
else
echo "Version change not for branch release"
fi
- name: Create release using REST API
if: steps.version-change.outputs.changed == 'true'
run: |
curl -L \
-X POST \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer ${{ secrets.GH_ONF_BOT_PAT }}" \
-H "X-GitHub-Api-Version: 2022-11-28" \
https://api.github.com/repos/${{ github.repository }}/releases \
-d '{
"tag_name": "v${{ steps.version-change.outputs.version }}",
"target_commitish": "${{ github.event.repository.default_branch }}",
"name": "v${{ steps.version-change.outputs.version }}",
"draft": false,
"prerelease": false,
"generate_release_notes": true
}'
release-image-gnb:
runs-on: ubuntu-latest
needs: tag-github
if: needs.tag-github.outputs.changed == 'true'
env:
REGISTRY: docker.io
DOCKER_REGISTRY: docker.io/
DOCKER_REPOSITORY: aetherproject/
steps:
- uses: actions/checkout@v6
- uses: docker/login-action@v4.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push release Docker image for gNB
env:
DOCKER_TARGETS: gnb
DOCKER_TAG: rel-${{ needs.tag-github.outputs.version }}
run: |
make docker-build
make docker-push
release-image-ocudu:
runs-on: ubuntu-latest
needs: tag-github
if: needs.tag-github.outputs.changed == 'true'
env:
REGISTRY: docker.io
DOCKER_REGISTRY: docker.io/
DOCKER_REPOSITORY: aetherproject/
steps:
- uses: actions/checkout@v6
- uses: docker/login-action@v4.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push release Docker image for OCUDU-gNB
env:
DOCKER_TARGETS: ocudu
DOCKER_TAG: rel-${{ needs.tag-github.outputs.version }}
run: |
make docker-build
make docker-push
release-image-ue:
runs-on: ubuntu-latest
needs: tag-github
if: needs.tag-github.outputs.changed == 'true'
env:
REGISTRY: docker.io
DOCKER_REGISTRY: docker.io/
DOCKER_REPOSITORY: aetherproject/
steps:
- uses: actions/checkout@v6
- uses: docker/login-action@v4.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push release Docker image for UE
env:
DOCKER_TARGETS: ue
DOCKER_TAG: rel-${{ needs.tag-github.outputs.version }}
run: |
make docker-build
make docker-push
release-image-ueransim:
runs-on: ubuntu-latest
needs: tag-github
if: needs.tag-github.outputs.changed == 'true'
env:
REGISTRY: docker.io
DOCKER_REGISTRY: docker.io/
DOCKER_REPOSITORY: aetherproject/
steps:
- uses: actions/checkout@v6
- uses: docker/login-action@v4.2.0
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Build and push release Docker image for UERANSIM
env:
DOCKER_TARGETS: ueransim
DOCKER_TAG: rel-${{ needs.tag-github.outputs.version }}
run: |
make docker-build
make docker-push
update-version:
runs-on: ubuntu-latest
needs: tag-github
if: needs.tag-github.outputs.changed == 'true'
steps:
- uses: actions/checkout@v6
- name: Increment version
env:
RELEASE_VERSION: ${{ needs.tag-github.outputs.version }}
run: |
version="$RELEASE_VERSION"
IFS='.' read -r major minor patch <<< "$version"
patch_update=$((patch+1))
NEW_VERSION="$major.$minor.$patch_update-dev"
echo "$NEW_VERSION" > VERSION
echo "Updated version: $NEW_VERSION"
- name: Create Pull Request
uses: peter-evans/create-pull-request@v8
with:
token: ${{ secrets.GH_ONF_BOT_PAT }}
commit-message: Update version
committer: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
signoff: true
branch: version-update
delete-branch: true
title: Update version
body: |
Update VERSION file
add-paths: |
VERSION