diff --git a/.github/workflows/unit-test-on-pull-request.yml b/.github/workflows/build.yml similarity index 87% rename from .github/workflows/unit-test-on-pull-request.yml rename to .github/workflows/build.yml index 79cd4c4..0e5287b 100644 --- a/.github/workflows/unit-test-on-pull-request.yml +++ b/.github/workflows/build.yml @@ -5,11 +5,12 @@ on: branches: [main] pull_request: branches: ["**"] + workflow_call: jobs: lint: name: Lint - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 strategy: fail-fast: true max-parallel: 2 @@ -64,15 +65,16 @@ jobs: test: name: Test - runs-on: ubuntu-latest strategy: fail-fast: true max-parallel: 2 matrix: go: ["stable"] + os: ["arm-4core-linux", "ubuntu-22.04"] + runs-on: ${{ matrix.os }} steps: - name: Install dependencies - run: sudo apt-get install -y llvm clang dwz cmake curl unzip + run: sudo apt-get update && sudo apt-get install -y --no-install-recommends gcc make llvm clang dwz cmake curl unzip - name: Install Zydis shell: bash run: | @@ -98,11 +100,13 @@ jobs: - name: Install gRPC dependencies env: PB_URL: "https://github.com/protocolbuffers/protobuf/releases/download/v24.4/" - PB_FILE: "protoc-24.4-linux-x86_64.zip" + PB_FILE: "protoc-24.4-linux-%arch%.zip" INSTALL_DIR: "/usr/local" run: | go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.31.0 go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.3.0 + ARCH=$(uname -m | sed 's/aarch64/aarch_64/') + PB_FILE=$(echo $PB_FILE | sed "s/%arch%/$ARCH/g") curl -LO "$PB_URL/$PB_FILE" sudo unzip "$PB_FILE" -d "$INSTALL_DIR" 'bin/*' 'include/*' sudo chmod +xr "$INSTALL_DIR/bin/protoc" @@ -114,7 +118,9 @@ jobs: - name: Build run: | echo $PATH - make test + make - name: Tests + # Tests fail on arm + if: matrix.os != 'arm-4core-linux' run: | make test diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..06bf175 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,28 @@ +name: Release + +on: + push: + branches: [nsavoire/ci_build] + tags: + - 'v*' + +jobs: + build: + name: Build + uses: ./.github/workflows/build.yml + + release: + needs: build + name: Release + runs-on: ubuntu-latest + permissions: + actions: read + contents: write + + # - name: Create Release + # uses: ncipollo/release-action@v1 + # with: + # artifacts: "build/libs/dogburp-v*.jar" + # token: ${{ secrets.GITHUB_TOKEN }} + # allowUpdates: true + # omitBody: true