diff --git a/.woodpecker/.build.yml b/.woodpecker/.build.yml index cc66bc7f..83dcb0e5 100644 --- a/.woodpecker/.build.yml +++ b/.woodpecker/.build.yml @@ -1,6 +1,7 @@ # These checks already get performed on the feature branches branches: exclude: [ main, dev ] +platform: linux/amd64 pipeline: vieter: @@ -22,3 +23,6 @@ pipeline: group: 'build' commands: - make prod + # Make sure the binary is actually static + - readelf -d pvieter + - '[ "$(readelf -d pvieter | grep NEEDED | wc -l)" = 0 ]' diff --git a/.woodpecker/.build_arm64.yml b/.woodpecker/.build_arm64.yml new file mode 100644 index 00000000..704bc483 --- /dev/null +++ b/.woodpecker/.build_arm64.yml @@ -0,0 +1,28 @@ +# These checks already get performed on the feature branches +branches: + exclude: [ main, dev ] +platform: linux/arm64 + +pipeline: + vieter: + image: 'chewingbever/vlang:latest' + group: 'build' + commands: + - make vieter + + debug: + image: 'chewingbever/vlang:latest' + group: 'build' + commands: + - make debug + + prod: + image: 'chewingbever/vlang:latest' + environment: + - LDFLAGS=-lz -lbz2 -llzma -lexpat -lzstd -llz4 -static + group: 'build' + commands: + - make prod + # Make sure the binary is actually static + - readelf -d pvieter + - '[ "$(readelf -d pvieter | grep NEEDED | wc -l)" = 0 ]' diff --git a/.woodpecker/.builder.yml b/.woodpecker/.builder.yml index ec4a36e2..f8275661 100644 --- a/.woodpecker/.builder.yml +++ b/.woodpecker/.builder.yml @@ -1,13 +1,15 @@ branches: dev +platform: linux/amd64 pipeline: publish: - image: plugins/docker + image: woodpeckerci/plugin-docker-buildx secrets: [ docker_username, docker_password ] settings: repo: chewingbever/vlang tag: latest dockerfile: Dockerfile.builder + platforms: [ linux/arm/v7, linux/arm64/v8, linux/amd64 ] when: event: push path: Dockerfile.builder diff --git a/.woodpecker/.lint.yml b/.woodpecker/.lint.yml index ae47c324..380b3d40 100644 --- a/.woodpecker/.lint.yml +++ b/.woodpecker/.lint.yml @@ -1,6 +1,7 @@ # These checks already get performed on the feature branches branches: exclude: [ main, dev ] +platform: linux/amd64 pipeline: lint: diff --git a/.woodpecker/.publish.yml b/.woodpecker/.publish.yml index 34a36756..d23f63c3 100644 --- a/.woodpecker/.publish.yml +++ b/.woodpecker/.publish.yml @@ -1,4 +1,5 @@ branches: [main, dev] +platform: linux/amd64 pipeline: dev: @@ -23,3 +24,6 @@ pipeline: when: event: tag branch: main + +depends_on: + - builder diff --git a/Dockerfile.builder b/Dockerfile.builder index d45fe830..48048f80 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -8,17 +8,17 @@ ENV VVV /opt/vlang ENV PATH /opt/vlang:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ENV VFLAGS -cc gcc -RUN mkdir -p /opt/vlang && ln -s /opt/vlang/v /usr/bin/v - -RUN apk --no-cache add \ - git make upx gcc bash \ - musl-dev \ - openssl-libs-static openssl-dev \ - zlib-static bzip2-static xz-dev expat-static zstd-static lz4-static \ - sqlite-static sqlite-dev \ - libx11-dev glfw-dev freetype-dev \ - libarchive-static libarchive-dev \ - diffutils +RUN mkdir -p /opt/vlang && \ + ln -s /opt/vlang/v /usr/bin/v && \ + apk --no-cache add \ + git make gcc \ + musl-dev \ + openssl-libs-static openssl-dev \ + zlib-static bzip2-static xz-dev expat-static zstd-static lz4-static \ + sqlite-static sqlite-dev \ + libx11-dev glfw-dev freetype-dev \ + libarchive-static libarchive-dev \ + diffutils COPY . /vlang-local