From 07adf3c06f42f22a1506551fcb4d9969e03a50df Mon Sep 17 00:00:00 2001 From: Henrique Santos Date: Thu, 8 Aug 2024 16:21:52 +0000 Subject: [PATCH 1/4] feat(RDGRS-662): build image --- .github/dependabot.yml | 13 ------- .github/goreleaser.yml | 46 ----------------------- .github/workflows/ci.yml | 81 ---------------------------------------- Dockerfile | 19 ++-------- go.sum | 11 +----- goreleaser.yml | 40 ++++++++++++++++++++ 6 files changed, 44 insertions(+), 166 deletions(-) delete mode 100644 .github/dependabot.yml delete mode 100644 .github/goreleaser.yml delete mode 100644 .github/workflows/ci.yml create mode 100644 goreleaser.yml diff --git a/.github/dependabot.yml b/.github/dependabot.yml deleted file mode 100644 index 2dd92b7b..00000000 --- a/.github/dependabot.yml +++ /dev/null @@ -1,13 +0,0 @@ -version: 2 -updates: - # Maintain dependencies for GitHub Actions - - package-ecosystem: "github-actions" - directory: "/" - schedule: - interval: "monthly" - -# Dependencies listed in go.mod - - package-ecosystem: "gomod" - directory: "/" # Location of package manifests - schedule: - interval: "monthly" 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 deleted file mode 100644 index b79e1621..00000000 --- a/.github/workflows/ci.yml +++ /dev/null @@ -1,81 +0,0 @@ -on: [push, pull_request] -name: CI -jobs: - # ================ - # TEST JOB - # runs on every push and PR - # runs 2x3 times (see matrix) - # ================ - test: - name: Test - strategy: - matrix: - go-version: [1.21.x] - platform: [ubuntu-latest, macos-latest, windows-latest] - runs-on: ${{ matrix.platform }} - steps: - - name: Install Go - uses: actions/setup-go@v3 - with: - go-version: ${{ matrix.go-version }} - - name: Checkout code - uses: actions/checkout@v3 - - 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 }} 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..83fbf164 --- /dev/null +++ b/goreleaser.yml @@ -0,0 +1,40 @@ +# test this goreleaser config with: +# - cd chisel +# - goreleaser --clean --snapshot --config goreleaser.yml +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:" From bebebe0db566a1c7b239cdc8dd443ba6e9d9e4ef Mon Sep 17 00:00:00 2001 From: Henrique Santos Date: Mon, 12 Aug 2024 10:00:56 +0000 Subject: [PATCH 2/4] feat(RDGRS-662): restore test CI and dependabot --- .github/workflows/ci.yml | 26 ++++++++++++++++++++++++++ .github/workflows/dependabot.yml | 13 +++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/dependabot.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 00000000..8be2a664 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,26 @@ +on: [push, pull_request] +name: CI +jobs: + # ================ + # TEST JOB + # runs on every push and PR + # runs 2x3 times (see matrix) + # ================ + test: + name: Test + strategy: + matrix: + go-version: [1.21.x] + platform: [ubuntu-latest, macos-latest, windows-latest] + runs-on: ${{ matrix.platform }} + steps: + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: ${{ matrix.go-version }} + - name: Checkout code + uses: actions/checkout@v3 + - name: Build + run: go build -v -o /dev/null . + - name: Test + run: go test -v ./... \ No newline at end of file diff --git a/.github/workflows/dependabot.yml b/.github/workflows/dependabot.yml new file mode 100644 index 00000000..6067b7de --- /dev/null +++ b/.github/workflows/dependabot.yml @@ -0,0 +1,13 @@ +version: 2 +updates: + # Maintain dependencies for GitHub Actions + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + +# Dependencies listed in go.mod + - package-ecosystem: "gomod" + directory: "/" # Location of package manifests + schedule: + interval: "monthly" \ No newline at end of file From 356482e2725f088e587e80f39efad450efb38e76 Mon Sep 17 00:00:00 2001 From: Henrique Santos Date: Mon, 12 Aug 2024 10:01:49 +0000 Subject: [PATCH 3/4] feat(RDGRS-662): test CI only on linux --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8be2a664..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 From 7ff5ffd47fc1bc7abc8ae8fd4521ba048de63918 Mon Sep 17 00:00:00 2001 From: Henrique Santos Date: Mon, 12 Aug 2024 10:04:57 +0000 Subject: [PATCH 4/4] feat(RDGRS-662): add version to goreleaser --- goreleaser.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/goreleaser.yml b/goreleaser.yml index 83fbf164..b5b9b21a 100644 --- a/goreleaser.yml +++ b/goreleaser.yml @@ -1,6 +1,7 @@ # test this goreleaser config with: # - cd chisel # - goreleaser --clean --snapshot --config goreleaser.yml +version: 2 project_name: chisel before: hooks: