Skip to content

Commit

Permalink
feat: Update go version
Browse files Browse the repository at this point in the history
Signed-off-by: Taras Drozdovskyi <[email protected]>
  • Loading branch information
tdrozdovsky committed Dec 19, 2024
1 parent 3d5449e commit 5fef0dd
Show file tree
Hide file tree
Showing 18 changed files with 72 additions and 64 deletions.
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@ Example
**Test Configuration**:
* OS type & version: Ubuntu 20.04
* Hardware: x86-64 (e.g., x86, x86-64, arm, arm64)
* Toolchain: Docker v20.10 & Go v1.19
* Edge Orchestration Release: v1.1.x
* Toolchain: Docker v20.10 & Go v1.23
* Edge Orchestration Release: v1.2.x

# Checklist:

Expand Down
14 changes: 7 additions & 7 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,21 +10,21 @@ jobs:
fail-fast: false
matrix:
arch: [x86c, x86_64c, armc, arm64c, x86_64n, x86_64a]
os: [ubuntu-20.04]
os: [ubuntu-24.04]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332

- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Install Qemu
if: ${{ matrix.arch != 'x86_64c' && matrix.arch != 'x86_64a' && matrix.arch != 'x86_64n'}}
run: |
sudo apt-get update
sudo apt-get install -y qemu binfmt-support qemu-user-static
# - name: Install Qemu
# if: ${{ matrix.arch != 'x86_64c' && matrix.arch != 'x86_64a' && matrix.arch != 'x86_64n'}}
# run: |
# sudo apt-get update
# sudo apt-get install -y qemu binfmt-support qemu-user-static

- name: Install Android SDK & NDK
if: ${{ matrix.arch == 'x86_64a' }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ jobs:
- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@afb54ba388a7dca6ecae48f608c4ff05ff4cc77a
2 changes: 1 addition & 1 deletion .github/workflows/go-fuzz-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ jobs:
- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Fuzz test
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/lint-vet-gofmt-staticcheck-analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Set env vars (golint)
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Set up QEMU
uses: docker/setup-qemu-action@49b3bc8e6bdd4a60e6116a5414239cba5943d3cf
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/test-suite.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ jobs:
- name: Setup Golang
uses: actions/setup-go@0a12ed9d6a96ab950c8f026ed9f722fe0da7ef32
with:
go-version: '1.19'
go-version: '1.23'

- name: Set env vars (gocov)
run: |
Expand Down
33 changes: 18 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ ifeq ($(CONFIG_ARM),y)
INTERFACE_OUT_INC_DIR := $(INTERFACE_OUT_DIR)/inc/linux_arm
INTERFACE_OUT_BIN_DIR := $(INTERFACE_OUT_DIR)/bin/linux_arm
INTERFACE_OUT_LIB_DIR := $(INTERFACE_OUT_DIR)/lib/linux_arm
CONTAINER_ARCH="arm32v7"
CONTAINER_ARCH="arm/v7"
GOARCH=arm
CC="arm-linux-gnueabi-gcc"
GOARM=7
Expand All @@ -88,15 +88,15 @@ else ifeq ($(CONFIG_ARM64),y)
INTERFACE_OUT_INC_DIR := $(INTERFACE_OUT_DIR)/inc/linux_aarch64
INTERFACE_OUT_BIN_DIR := $(INTERFACE_OUT_DIR)/bin/linux_aarch64
INTERFACE_OUT_LIB_DIR := $(INTERFACE_OUT_DIR)/lib/linux_aarch64
CONTAINER_ARCH="arm64v8"
CONTAINER_ARCH="arm64"
GOARCH=arm64
CC="aarch64-linux-gnu-gcc"
ANDROID_TARGET="android/arm64"
else ifeq ($(CONFIG_X86),y)
INTERFACE_OUT_INC_DIR := $(INTERFACE_OUT_DIR)/inc/linux_x86
INTERFACE_OUT_BIN_DIR := $(INTERFACE_OUT_DIR)/bin/linux_x86
INTERFACE_OUT_LIB_DIR := $(INTERFACE_OUT_DIR)/lib/linux_x86
CONTAINER_ARCH="i386"
CONTAINER_ARCH="386"
GOARCH=386
CC="gcc"
ANDROID_TARGET="android/386"
Expand Down Expand Up @@ -181,19 +181,22 @@ build_docker_container:
$(call print_header, "Create Docker container $(CONTAINER_ARCH)")
-docker rm -f $(PKG_NAME)
-docker rmi -f $(DOCKER_IMAGE):$(CONTAINER_VERSION)
$(Q) mkdir -p $(BASE_DIR)/bin/qemu
ifeq ($(CONFIG_ARM),y)
ifneq ($(shell uname -m),armv7l)
$(Q) cp /usr/bin/qemu-arm-static $(BASE_DIR)/bin/qemu
endif
endif
ifeq ($(CONFIG_ARM64),y)
ifneq ($(shell uname -m),aarch64)
$(Q) cp /usr/bin/qemu-aarch64-static $(BASE_DIR)/bin/qemu
endif
endif
$(DOCKER) build --tag $(DOCKER_IMAGE):$(CONTAINER_VERSION) --file $(BASE_DIR)/Dockerfile --build-arg PLATFORM=$(CONTAINER_ARCH) .
-docker buildx create --use

# $(Q) mkdir -p $(BASE_DIR)/bin/qemu
#ifeq ($(CONFIG_ARM),y)
#ifneq ($(shell uname -m),armv7l)
# $(Q) cp /usr/bin/qemu-arm-static $(BASE_DIR)/bin/qemu
#endif
#endif
#ifeq ($(CONFIG_ARM64),y)
#ifneq ($(shell uname -m),aarch64)
# $(Q) cp /usr/bin/qemu-aarch64-static $(BASE_DIR)/bin/qemu
#endif
#endif
$(DOCKER) buildx build --platform linux/$(CONTAINER_ARCH) --tag $(DOCKER_IMAGE):$(CONTAINER_VERSION) --file $(BASE_DIR)/Dockerfile .
-docker save -o $(BASE_DIR)/bin/edge-orchestration.tar $(DOCKER_IMAGE)
# docker buildx build --platform linux/arm/v7 --tag lfedge/edge-home-orchestration-go:latest --file Dockerfile --load .

## go test and coverage
test-go:
Expand Down
7 changes: 3 additions & 4 deletions configs/defdockerfiles/alpine
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Docker image for "edge-orchestration"
### alpine:3.12
ARG PLATFORM
FROM $PLATFORM/alpine:3.12
FROM alpine:3.12

# environment variables
ENV TARGET_DIR=/edge-orchestration
Expand All @@ -12,12 +11,12 @@ ENV MNEDC_BROADCAST_PORT=3333
ENV ZEROCONF_PORT=42425
ENV APP_BIN_DIR=bin
ENV APP_NAME=edge-orchestration
ENV APP_QEMU_DIR=$APP_BIN_DIR/qemu
# ENV APP_QEMU_DIR=$APP_BIN_DIR/qemu
ENV BUILD_DIR=build

# copy files
COPY $APP_BIN_DIR/$APP_NAME $BUILD_DIR/package/run.sh $TARGET_DIR/
COPY $APP_QEMU_DIR/ /usr/bin/
# COPY $APP_QEMU_DIR/ /usr/bin/
RUN mkdir -p $TARGET_DIR/res/

# install required tools
Expand Down
16 changes: 9 additions & 7 deletions configs/defdockerfiles/ubuntu
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# Docker image for "edge-orchestration"
### ubuntu:20.04
ARG PLATFORM
FROM $PLATFORM/ubuntu:20.04
### ubuntu:24.04
FROM ubuntu:24.04

# environment variables
ENV TARGET_DIR=/edge-orchestration
Expand All @@ -13,19 +12,22 @@ ENV ZEROCONF_PORT=42425
ENV UI_PORT=49153
ENV APP_BIN_DIR=bin
ENV APP_NAME=edge-orchestration
ENV APP_QEMU_DIR=$APP_BIN_DIR/qemu
# ENV APP_QEMU_DIR=$APP_BIN_DIR/qemu
ENV BUILD_DIR=build
ENV WEB_DIR=web

# copy files
COPY $APP_BIN_DIR/$APP_NAME $BUILD_DIR/package/run.sh $TARGET_DIR/
COPY $APP_QEMU_DIR/ /usr/bin/
# COPY $APP_QEMU_DIR/ /usr/bin/
RUN mkdir -p $TARGET_DIR/res/
COPY $WEB_DIR/$BUILD_DIR/ $TARGET_DIR/$WEB_DIR/

# install required tools
RUN apt-get update
RUN apt-get install -y net-tools iproute2
# RUN apt-get update
# RUN apt-get install -y net-tools iproute2

RUN apt update
RUN apt install -y net-tools iproute2

# expose ports
EXPOSE $HTTP_PORT $MDNS_PORT $ZEROCONF_PORT $MNEDC_PORT $MNEDC_BROADCAST_PORT $UI_PORT
Expand Down
13 changes: 8 additions & 5 deletions configs/defdockerfiles/ubuntu_multistage
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Docker image for "edge-orchestration"
FROM --platform=$TARGETPLATFORM ubuntu:20.04 AS builder
FROM --platform=$TARGETPLATFORM ubuntu:24.04 AS builder

# environment variables
ARG TARGETPLATFORM
ENV GOVERSION=1.19.1
ENV GOVERSION=1.23.2
ENV GOPATH=/usr/local/go
ENV TARGET_DIR=/edge-orchestration

Expand All @@ -19,7 +19,7 @@ RUN script/install-golang.sh
ARG TARGETVERSION
RUN make buildx_binary VERSION=$TARGETVERSION

FROM ubuntu:20.04
FROM ubuntu:24.04

# environment variables
ENV TARGET_DIR=/edge-orchestration
Expand All @@ -44,8 +44,11 @@ COPY --from=builder $TARGET_DIR/$WEB_DIR/$BUILD_DIR $TARGET_DIR/$WEB_DIR/
RUN mkdir -p $TARGET_DIR/res/

# install required tools
RUN apt-get update
RUN apt-get install -y net-tools iproute2
# RUN apt-get update
# RUN apt-get install -y net-tools iproute2

RUN apt update
RUN apt install -y net-tools iproute2

# expose ports
EXPOSE $HTTP_PORT $MDNS_PORT $ZEROCONF_PORT $MNEDC_PORT $MNEDC_BROADCAST_PORT $UI_PORT
Expand Down
2 changes: 1 addition & 1 deletion docs/platforms/x86_64_linux/x86_64_linux.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Please see the below [How to work](#how-to-work) to know how to run Edge Orchest
`$ sudo usermod -aG docker $USER`

- go compiler
- Version: 1.19 (or above)
- Version: 1.23 (or above)
- [How to install](https://golang.org/dl/)

> To build Edge Orchestrator from Go sources, you need to set GOPATH environment variable:
Expand Down
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
module github.com/lf-edge/edge-home-orchestration-go

go 1.19
go 1.23

require (
github.com/casbin/casbin v1.9.1
Expand Down
14 changes: 7 additions & 7 deletions internal/common/resourceutil/resourceutil_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ func TestGetCPUUsage(t *testing.T) {

cpuUsage, err := resourceIns.GetResource(CPUUsage)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if cpuUsage != dummyCPUPercentResult {
Expand Down Expand Up @@ -291,7 +291,7 @@ func TestGetCPUFreq(t *testing.T) {

cpuFreq, err := resourceIns.GetResource(CPUFreq)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if cpuFreq != dummyCPUFreqResult {
Expand Down Expand Up @@ -324,7 +324,7 @@ func TestGetCPUCount(t *testing.T) {

cpuCount, err := resourceIns.GetResource(CPUCount)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if cpuCount != dummyCPUCountResult {
Expand Down Expand Up @@ -357,7 +357,7 @@ func TestGetMemAvailable(t *testing.T) {

memAvailable, err := resourceIns.GetResource(MemAvailable)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if memAvailable != dummyMemAvailableResult {
Expand Down Expand Up @@ -390,7 +390,7 @@ func TestGetMemFree(t *testing.T) {

memFree, err := resourceIns.GetResource(MemFree)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if memFree != dummyMemFreeResult {
Expand Down Expand Up @@ -423,7 +423,7 @@ func TestGetNetMBps(t *testing.T) {

netMBps, err := resourceIns.GetResource(NetMBps)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if netMBps != dummyNetMBpsResult {
Expand Down Expand Up @@ -456,7 +456,7 @@ func TestGetNetBandwidth(t *testing.T) {

netBandwidth, err := resourceIns.GetResource(NetBandwidth)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}

if netBandwidth != dummyNetBandwidthResult {
Expand Down
6 changes: 3 additions & 3 deletions internal/controller/configuremgr/configuremgr_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ func TestSetConfigPath(t *testing.T) {
t.Errorf("%s != %s", defaultConfPath, configuremgrObj.confpath)
}
} else {
t.Errorf(err.Error())
t.Error(err.Error())
}
})
t.Run("No File", func(t *testing.T) {
Expand Down Expand Up @@ -94,7 +94,7 @@ func TestBasicMockConfigureMgr(t *testing.T) {
os.RemoveAll(dir)
err := os.Mkdir(dir, 0775)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
} else {
files, err := os.ReadDir(src)
if err != nil {
Expand All @@ -104,7 +104,7 @@ func TestBasicMockConfigureMgr(t *testing.T) {
fileContent, _ := os.ReadFile(filepath.Join(src, file.Name()))
err = os.WriteFile(filepath.Join(dir, file.Name()), []byte(fileContent), 0664)
if err != nil {
t.Errorf(err.Error())
t.Error(err.Error())
}
}
}
Expand Down
9 changes: 5 additions & 4 deletions internal/controller/discoverymgr/mnedc/server/server.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,14 @@ package server

import (
"errors"
"github.com/lf-edge/edge-home-orchestration-go/internal/common/logmgr"
"github.com/lf-edge/edge-home-orchestration-go/internal/common/networkhelper"
"math/rand"
"net"
"sync"
"time"

"github.com/lf-edge/edge-home-orchestration-go/internal/common/logmgr"
"github.com/lf-edge/edge-home-orchestration-go/internal/common/networkhelper"

"github.com/lf-edge/edge-home-orchestration-go/internal/controller/discoverymgr/mnedc/connectionutil"
"github.com/lf-edge/edge-home-orchestration-go/internal/controller/discoverymgr/mnedc/tunmgr"

Expand Down Expand Up @@ -387,11 +388,11 @@ func generateServerIP() net.IP {

privateIP = privateIP + "/16"
_, subnet, _ := net.ParseCIDR(privateIP)
rand.Seed(time.Now().UnixNano())
r := rand.New(rand.NewSource(time.Now().UnixNano()))

for {
//Assigning new Virtual IP address in case of clash with Private IP
serverVirtualIP = net.IPv4(10, byte(rand.Intn(255)), byte(rand.Intn(255)), 1)
serverVirtualIP = net.IPv4(10, byte(r.Intn(255)), byte(r.Intn(255)), 1)
if !subnet.Contains(serverVirtualIP) {
break
}
Expand Down
Loading

0 comments on commit 5fef0dd

Please sign in to comment.