From 22e656452ff8e897b50ea67358480e8e9625d262 Mon Sep 17 00:00:00 2001 From: Henrique Santos <103441484+OS-henriquesantos@users.noreply.github.com> Date: Mon, 12 Aug 2024 12:23:20 +0100 Subject: [PATCH] feat(RDGRS-662): build image (#20) * feat(RDGRS-662): build image * feat(RDGRS-662): restore test CI and dependabot * feat(RDGRS-662): test CI only on linux * feat(RDGRS-662): add version to goreleaser --- .github/goreleaser.yml | 46 -------------------- .github/workflows/ci.yml | 59 +------------------------- .github/{ => workflows}/dependabot.yml | 2 +- Dockerfile | 19 ++------- go.sum | 11 +---- goreleaser.yml | 41 ++++++++++++++++++ 6 files changed, 48 insertions(+), 130 deletions(-) delete mode 100644 .github/goreleaser.yml rename .github/{ => workflows}/dependabot.yml (91%) create mode 100644 goreleaser.yml diff --git a/.github/goreleaser.yml b/.github/goreleaser.yml deleted file mode 100644 index d0cece00..00000000 --- a/.github/goreleaser.yml +++ /dev/null @@ -1,46 +0,0 @@ -# test this goreleaser config with: -# - cd chisel -# - goreleaser --skip-publish --rm-dist --config .github/goreleaser.yml -builds: - - env: - - CGO_ENABLED=0 - ldflags: - - -s -w -X github.com/jpillora/chisel/share.BuildVersion={{.Version}} - flags: - - -trimpath - goos: - - linux - - darwin - - windows - goarch: - - 386 - - amd64 - - arm - - arm64 - - ppc64 - - ppc64le - - mips - - mipsle - - mips64 - - mips64le - - s390x - goarm: - - 5 - - 6 - - 7 - gomips: - - hardfloat - - softfloat -archives: - - format: gz - files: - - none* -release: - draft: true - prerelease: auto -changelog: - sort: asc - filters: - exclude: - - "^docs:" - - "^test:" diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index b79e1621..83ecab03 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -11,7 +11,7 @@ jobs: strategy: matrix: go-version: [1.21.x] - platform: [ubuntu-latest, macos-latest, windows-latest] + platform: [ubuntu-latest] runs-on: ${{ matrix.platform }} steps: - name: Install Go @@ -23,59 +23,4 @@ jobs: - name: Build run: go build -v -o /dev/null . - name: Test - run: go test -v ./... - # ================ - # RELEASE JOBS - # runs after a success test - # only runs on push "v*" tag - # ================ - release_binaries: - name: Release Binaries - needs: test - if: startsWith(github.ref, 'refs/tags/v') - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v3 - - name: goreleaser - if: success() - uses: docker://goreleaser/goreleaser:latest - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - args: release --config .github/goreleaser.yml - release_docker: - name: Release Docker Images - needs: test - if: startsWith(github.ref, 'refs/tags/v') - runs-on: ubuntu-latest - steps: - - name: Check out code - uses: actions/checkout@v3 - - name: Set up QEMU - uses: docker/setup-qemu-action@v1 - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v1 - - name: Login to DockerHub - uses: docker/login-action@v2 - with: - username: jpillora - password: ${{ secrets.DOCKERHUB_TOKEN }} - - name: Docker meta - id: docker_meta - uses: docker/metadata-action@v4 - with: - images: jpillora/chisel - tags: | - type=semver,pattern={{version}} - type=semver,pattern={{major}}.{{minor}} - type=semver,pattern={{major}} - - name: Build and push - uses: docker/build-push-action@v3 - with: - context: . - platforms: linux/amd64,linux/arm64,linux/ppc64le,linux/386,linux/arm/v7,linux/arm/v6 - push: true - tags: ${{ steps.docker_meta.outputs.tags }} - labels: ${{ steps.docker_meta.outputs.labels }} + run: go test -v ./... \ No newline at end of file diff --git a/.github/dependabot.yml b/.github/workflows/dependabot.yml similarity index 91% rename from .github/dependabot.yml rename to .github/workflows/dependabot.yml index 2dd92b7b..6067b7de 100644 --- a/.github/dependabot.yml +++ b/.github/workflows/dependabot.yml @@ -10,4 +10,4 @@ updates: - package-ecosystem: "gomod" directory: "/" # Location of package manifests schedule: - interval: "monthly" + interval: "monthly" \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 8d2f8ccf..37c36525 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,3 @@ -# build stage -FROM golang:alpine AS build -RUN apk update && apk add git -ADD . /src -WORKDIR /src -ENV CGO_ENABLED 0 -RUN go build \ - -ldflags "-X github.com/jpillora/chisel/share.BuildVersion=$(git describe --abbrev=0 --tags)" \ - -o /tmp/bin -# run stage -FROM scratch -LABEL maintainer="dev@jpillora.com" -COPY --from=build /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ -WORKDIR /app -COPY --from=build /tmp/bin /app/bin -ENTRYPOINT ["/app/bin"] \ No newline at end of file +FROM alpine +COPY chisel /app/ +ENTRYPOINT ["/app/chisel"] \ No newline at end of file diff --git a/go.sum b/go.sum index 679504e8..75df3b5c 100644 --- a/go.sum +++ b/go.sum @@ -16,25 +16,16 @@ github.com/jpillora/sizestr v1.0.0 h1:4tr0FLxs1Mtq3TnsLDV+GYUWG7Q26a6s+tV5Zfw2yg github.com/jpillora/sizestr v1.0.0/go.mod h1:bUhLv4ctkknatr6gR42qPxirmd5+ds1u7mzD+MZ33f0= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce h1:fb190+cK2Xz/dvi9Hv8eCYJYvIGUTN2/KLq1pT6CjEc= github.com/tomasen/realip v0.0.0-20180522021738-f0c99a92ddce/go.mod h1:o8v6yHRoik09Xen7gje4m9ERNah1d1PPsVq1VEx9vE4= -golang.org/x/crypto v0.12.0 h1:tFM/ta59kqch6LlvYnPa0yx5a83cL2nHflFhYKvv9Yk= -golang.org/x/crypto v0.12.0/go.mod h1:NF0Gs7EO5K4qLn+Ylc+fih8BSTeIjAP05siRnAh98yw= golang.org/x/crypto v0.13.0 h1:mvySKfSWJ+UKUii46M40LOvyWfN0s2U+46/jDd0e6Ck= golang.org/x/crypto v0.13.0/go.mod h1:y6Z2r+Rw4iayiXXAIxJIDAJ1zMW4yaTpebo8fPOliYc= -golang.org/x/net v0.14.0 h1:BONx9s002vGdD9umnlX1Po8vOZmrgH34qlHcD1MfK14= -golang.org/x/net v0.14.0/go.mod h1:PpSgVXXLK0OxS0F31C1/tv6XNguvCrnXIDrFMspZIUI= golang.org/x/net v0.15.0 h1:ugBLEUaxABaB5AJqW9enI0ACdci2RUd4eP51NTBvuJ8= golang.org/x/net v0.15.0/go.mod h1:idbUs1IY1+zTqbi8yxTbhexhEEk5ur9LInksu6HrEpk= golang.org/x/sync v0.3.0 h1:ftCYgMx6zT/asHUrPw8BLLscYtGznsLAnjq5RH9P66E= golang.org/x/sync v0.3.0/go.mod h1:FU7BRWz2tNW+3quACPkgCx/L+uEAv1htQ0V83Z9Rj+Y= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.11.0 h1:eG7RXZHdqOJ1i+0lgLgCpSXAp6M3LYlAo6osgSi0xOM= -golang.org/x/sys v0.11.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.11.0 h1:F9tnn/DA/Im8nCwm+fX+1/eBwi4qFjRT++MhtVC4ZX0= -golang.org/x/term v0.11.0/go.mod h1:zC9APTIj3jG3FdV/Ons+XE1riIZXG4aZ4GTHiPZJPIU= golang.org/x/term v0.12.0 h1:/ZfYdc3zq+q02Rv9vGqTeSItdzZTSNDmfTi0mBAuidU= -golang.org/x/text v0.12.0 h1:k+n5B8goJNdU7hSvEtMUz3d1Q6D/XW4COJSJR6fN0mc= -golang.org/x/text v0.12.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= +golang.org/x/term v0.12.0/go.mod h1:owVbMEjm3cBLCHdkQu9b1opXd4ETQWc3BhuQGKgXgvU= golang.org/x/text v0.13.0 h1:ablQoSUd0tRdKxZewP80B+BaqeKJuVhuRxj/dkrun3k= golang.org/x/text v0.13.0/go.mod h1:TvPlkZtksWOMsz7fbANvkp4WM8x/WCo/om8BMLbz+aE= diff --git a/goreleaser.yml b/goreleaser.yml new file mode 100644 index 00000000..b5b9b21a --- /dev/null +++ b/goreleaser.yml @@ -0,0 +1,41 @@ +# test this goreleaser config with: +# - cd chisel +# - goreleaser --clean --snapshot --config goreleaser.yml +version: 2 +project_name: chisel +before: + hooks: + - go mod tidy + - go generate ./... +builds: + - env: + - CGO_ENABLED=0 + ldflags: + - -s -w -X github.com/outsystems/chisel/share.BuildVersion={{.Version}} + flags: + - -trimpath + goos: + - linux +dockers: + - image_templates: + - "ghcr.io/outsystems/{{ .ProjectName }}:{{ .Version }}" + - "ghcr.io/outsystems/{{ .ProjectName }}:latest" + build_flag_templates: + - --platform=linux/amd64 + - --label=org.opencontainers.image.title=OutSystems Chisel + - --label=org.opencontainers.image.description=OutSystems Chisel + - --label=org.opencontainers.image.url=https://github.com/outsystems/chisel + - --label=org.opencontainers.image.source=https://github.com/outsystems/chisel + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} +checksum: + name_template: 'checksums.txt' +snapshot: + name_template: "{{ incpatch .Version }}-next" +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:"