From 3bbcbddadd56f310cdd48c786e7a8605cdae08a3 Mon Sep 17 00:00:00 2001 From: xiaoyao9184 <6614349+xiaoyao9184@users.noreply.github.com> Date: Sun, 26 Nov 2023 16:34:39 +0800 Subject: [PATCH 1/4] Support build docker image --- .github/workflows/build.yml | 16 ++++++++++++++++ .goreleaser.yaml | 36 ++++++++++++++++++++++++++++++++++++ Dockerfile | 3 +++ 3 files changed, 55 insertions(+) create mode 100644 Dockerfile diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 975afa1e..af514ec8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -105,6 +105,8 @@ jobs: runs-on: ubuntu-latest needs: [test, lint, examples, license-check] if: startsWith(github.ref, 'refs/tags/') + env: + DOCKER_CLI_EXPERIMENTAL: "enabled" steps: - uses: actions/checkout@v3 with: @@ -112,6 +114,19 @@ jobs: - run: git fetch --force --tags + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ secrets.GIT_TOKEN }} + - name: Set up Go uses: actions/setup-go@v4 with: @@ -125,3 +140,4 @@ jobs: args: release --clean env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} + DOCKER_USERNAME: ghcr.io/${{ github.repository_owner }} diff --git a/.goreleaser.yaml b/.goreleaser.yaml index f2b3924a..6fa6ae80 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -47,3 +47,39 @@ changelog: exclude: - "^docs:" - "^test:" + +dockers: + - image_templates: + - "{{ .Env.DOCKER_USERNAME }}/{{ .ProjectName }}:{{ .Tag }}-amd64" + dockerfile: Dockerfile + use: buildx + build_flag_templates: + - --platform=linux/amd64 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.source=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=AL2.0 + - image_templates: + - "{{ .Env.DOCKER_USERNAME }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8" + goarch: arm64 + dockerfile: Dockerfile + use: buildx + build_flag_templates: + - --platform=linux/arm64/v8 + - --label=org.opencontainers.image.title={{ .ProjectName }} + - --label=org.opencontainers.image.description={{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.source=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.version={{ .Version }} + - --label=org.opencontainers.image.created={{ .Date }} + - --label=org.opencontainers.image.revision={{ .FullCommit }} + - --label=org.opencontainers.image.licenses=AL2.0 +docker_manifests: + - name_template: "{{ .Env.DOCKER_USERNAME }}/{{ .ProjectName }}:{{ .Tag }}" + image_templates: + - "{{ .Env.DOCKER_USERNAME }}/{{ .ProjectName }}:{{ .Tag }}-amd64" + - "{{ .Env.DOCKER_USERNAME }}/{{ .ProjectName }}:{{ .Tag }}-arm64v8" diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..5591935f --- /dev/null +++ b/Dockerfile @@ -0,0 +1,3 @@ +FROM scratch +COPY pgroll /usr/bin/pgroll +ENTRYPOINT [ "/usr/bin/pgroll" ] \ No newline at end of file From bd3a83e0309700793f8d66524951c105b6436b34 Mon Sep 17 00:00:00 2001 From: xiaoyao9184 <6614349+xiaoyao9184@users.noreply.github.com> Date: Sun, 26 Nov 2023 14:47:27 +0800 Subject: [PATCH 2/4] Support customize homebrew tap by github action --- .github/workflows/build.yml | 1 + .goreleaser.yaml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index af514ec8..0c3ec27a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -140,4 +140,5 @@ jobs: args: release --clean env: GITHUB_TOKEN: ${{ secrets.GIT_TOKEN }} + GITHUB_USERNAME: ${{ github.repository_owner }} DOCKER_USERNAME: ghcr.io/${{ github.repository_owner }} diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 6fa6ae80..7c3c09f5 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -31,7 +31,7 @@ brews: description: "Postgres zero-downtime migrations made easy" license: "Apache-2.0" repository: - owner: xataio + owner: "{{ .Env.GITHUB_USERNAME }}" name: homebrew-pgroll archives: From ca08d2471446c33ebcaacc57b3e309c32530f263 Mon Sep 17 00:00:00 2001 From: xiaoyao9184 <6614349+xiaoyao9184@users.noreply.github.com> Date: Thu, 30 Nov 2023 09:12:13 +0800 Subject: [PATCH 3/4] Remove no need qemu action --- .github/workflows/build.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0c3ec27a..2d43e040 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -114,9 +114,6 @@ jobs: - run: git fetch --force --tags - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From 4a6c8fd50f813483211920a5c2ff69f38e9d396c Mon Sep 17 00:00:00 2001 From: xiaoyao9184 <6614349+xiaoyao9184@users.noreply.github.com> Date: Thu, 30 Nov 2023 09:23:21 +0800 Subject: [PATCH 4/4] Update docker label url to point to its own code --- .goreleaser.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.goreleaser.yaml b/.goreleaser.yaml index 7c3c09f5..d4625213 100644 --- a/.goreleaser.yaml +++ b/.goreleaser.yaml @@ -57,8 +57,8 @@ dockers: - --platform=linux/amd64 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - - --label=org.opencontainers.image.url=https://github.com/xataio/{{ .ProjectName }} - - --label=org.opencontainers.image.source=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_USERNAME }}/{{ .ProjectName }} + - --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_USERNAME }}/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.created={{ .Date }} - --label=org.opencontainers.image.revision={{ .FullCommit }} @@ -72,8 +72,8 @@ dockers: - --platform=linux/arm64/v8 - --label=org.opencontainers.image.title={{ .ProjectName }} - --label=org.opencontainers.image.description={{ .ProjectName }} - - --label=org.opencontainers.image.url=https://github.com/xataio/{{ .ProjectName }} - - --label=org.opencontainers.image.source=https://github.com/xataio/{{ .ProjectName }} + - --label=org.opencontainers.image.url=https://github.com/{{ .Env.GITHUB_USERNAME }}/{{ .ProjectName }} + - --label=org.opencontainers.image.source=https://github.com/{{ .Env.GITHUB_USERNAME }}/{{ .ProjectName }} - --label=org.opencontainers.image.version={{ .Version }} - --label=org.opencontainers.image.created={{ .Date }} - --label=org.opencontainers.image.revision={{ .FullCommit }}