From 564fdd663284691eef38ccb2e2a84894ce2946c6 Mon Sep 17 00:00:00 2001 From: Carlos Alexandro Becker Date: Sat, 3 Aug 2024 13:39:47 -0300 Subject: [PATCH] ci: docker Signed-off-by: Carlos Alexandro Becker --- .github/workflows/releaser.yml | 38 ++++++++++++++ .gitignore | 2 + .goreleaser.yaml | 91 ++++++++++++++++++++++++++++++++++ Dockerfile | 5 ++ 4 files changed, 136 insertions(+) create mode 100644 .github/workflows/releaser.yml create mode 100644 .goreleaser.yaml create mode 100644 Dockerfile diff --git a/.github/workflows/releaser.yml b/.github/workflows/releaser.yml new file mode 100644 index 0000000..6784879 --- /dev/null +++ b/.github/workflows/releaser.yml @@ -0,0 +1,38 @@ +# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json + +name: release + +on: + workflow_dispatch: + push: + tags: + - "*" + +permissions: + contents: write + id-token: write + packages: write + +jobs: + goreleaser: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + with: + fetch-depth: 0 + - uses: actions/setup-go@v5 + with: + go-version: stable + - uses: docker/setup-qemu-action@v3 + - uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GITHUB_TOKEN }} + - uses: goreleaser/goreleaser-action@v6 + with: + distribution: goreleaser + version: "~> 2" + args: release --clean + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index cfaad76..b0b9f5b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,3 @@ *.pem + +dist/ diff --git a/.goreleaser.yaml b/.goreleaser.yaml new file mode 100644 index 0000000..e422889 --- /dev/null +++ b/.goreleaser.yaml @@ -0,0 +1,91 @@ +# yaml-language-server: $schema=https://goreleaser.com/static/schema-pro.json +# vim: set ts=2 sw=2 tw=0 fo=cnqoj + +version: 2 + +project_name: akash-rpc-proxy + +before: + hooks: + - go mod tidy + - go generate ./... + +builds: + - env: + - CGO_ENABLED=0 + goos: + - linux + - windows + - darwin + +archives: + - format: tar.gz + name_template: >- + {{ .ProjectName }}_ + {{- title .Os }}_ + {{- if eq .Arch "amd64" }}x86_64 + {{- else if eq .Arch "386" }}i386 + {{- else }}{{ .Arch }}{{ end }} + {{- if .Arm }}v{{ .Arm }}{{ end }} + format_overrides: + - goos: windows + format: zip + +changelog: + sort: asc + filters: + exclude: + - "^docs:" + - "^test:" + +nfpms: + - vendor: "Akash Network" + homepage: "https://akash.network" + maintainer: "Akash Network " + license: Apache 2.0 + formats: + - apk + - deb + - rpm + +dockers: + - dockerfile: Dockerfile + use: buildx + goarch: amd64 + goos: linux + build_flag_templates: + - --platform=linux/amd64 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url={{.GitURL}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + image_templates: + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-amd64" + - dockerfile: Dockerfile + use: buildx + goarch: arm64 + goos: linux + build_flag_templates: + - --platform=linux/arm64 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url={{.GitURL}} + - --label=org.opencontainers.image.source={{.GitURL}} + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ time "2006-01-02T15:04:05Z07:00" }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + image_templates: + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-arm64" + +docker_manifests: + - name_template: "ghcr.io/akash-network/rpc-proxy:{{ .Version }}" + image_templates: + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-amd64" + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-arm64" + - name_template: "{{ .Env.DOCKER_IMAGE }}:latest" + image_templates: + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-amd64" + - "ghcr.io/akash-network/rpc-proxy:{{ .Version }}-arm64" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..4bb94f8 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM alpine +EXPOSE 443 +ENTRYPOINT ["/usr/bin/akash-rpc-proxy"] +COPY *.apk /tmp/ +RUN apk add --allow-untrusted /tmp/*.apk