From 1ad1b04d0b2bc2e95165e0cebc4eef0553e56870 Mon Sep 17 00:00:00 2001 From: ShawnDeng-code Date: Sat, 22 Mar 2025 16:21:17 +0800 Subject: [PATCH 1/2] ci: add docker ci file --- .github/workflows/docker_release.yaml | 54 +++++++++++++++------------ 1 file changed, 31 insertions(+), 23 deletions(-) diff --git a/.github/workflows/docker_release.yaml b/.github/workflows/docker_release.yaml index 3d8e754..7cb6a65 100644 --- a/.github/workflows/docker_release.yaml +++ b/.github/workflows/docker_release.yaml @@ -5,15 +5,14 @@ on: types: [published] workflow_dispatch: +env: + DOCKERHUB_IMAGE_NAME: shawndengdocker/ibkr_event_daemon + GITHUB_IMAGE_NAME: ShawnDen-coder/ibkr_event_daemon + jobs: push_to_registry: name: Push Docker image to Docker Hub runs-on: ubuntu-latest - permissions: - packages: write - contents: read - attestations: write - id-token: write steps: - name: Check out the repo uses: actions/checkout@v4 @@ -28,33 +27,42 @@ jobs: DOCKER_USERNAME: shawndengdocker DOCKER_TOKEN: op://shawndengdev/dockerhub/credential - - name: Print Docker Username - run: echo "Docker Username: ${{ env.DOCKER_USERNAME }}" - - - name: Print Image Name - run: echo "Image Name: ${{ env.DOCKER_USERNAME }}/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]')" - - - name: Log in to Docker Hub + - name: Login to Docker Hub uses: docker/login-action@v3 with: username: ${{ env.DOCKER_USERNAME }} password: ${{ env.DOCKER_TOKEN }} - - name: Extract metadata (tags, labels) for Docker - id: meta - uses: docker/metadata-action@v5 + - name: Login to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ github.repository_owner }} + password: ${{ env.PERSONAL_ACCESS_TOKEN }} + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Validate build configuration + uses: docker/build-push-action@v6 with: - images: ${{ env.DOCKER_USERNAME }}/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]') + call: check - - name: Build and push Docker image - id: push + - name: Build and push uses: docker/build-push-action@v6 with: - context: . - file: ./Dockerfile + platforms: linux/amd64,linux/arm64 push: true tags: | - ${{ steps.meta.outputs.tags }} - ${{ env.DOCKER_USERNAME }}/$(echo ${{ github.repository }} | tr '[:upper:]' '[:lower:]'):latest - labels: ${{ steps.meta.outputs.labels }} + ${{env.DOCKERHUB_IMAGE_NAME}}:latest + ${{env.DOCKERHUB_IMAGE_NAME}}:${{ github.ref_name}} + - name: Push image to GHCR + run: | + docker buildx imagetools create \ + --tag ${{ env.GITHUB_IMAGE_NAME }}:latest \ + --tag ${{ env.GITHUB_IMAGE_NAME }}:${{ github.ref_name }} \ + ${{ env.DOCKERHUB_IMAGE_NAME }}:${{ github.ref_name }} \ No newline at end of file From a5eb38705c3453750d78ccbce7423a9b5c7fc391 Mon Sep 17 00:00:00 2001 From: ShawnDeng-code Date: Sun, 23 Mar 2025 12:38:58 +0800 Subject: [PATCH 2/2] ci: update docker github action --- .github/workflows/docker_release.yaml | 35 ++++++++++++++------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/docker_release.yaml b/.github/workflows/docker_release.yaml index 7cb6a65..2edfbe3 100644 --- a/.github/workflows/docker_release.yaml +++ b/.github/workflows/docker_release.yaml @@ -7,11 +7,11 @@ on: env: DOCKERHUB_IMAGE_NAME: shawndengdocker/ibkr_event_daemon - GITHUB_IMAGE_NAME: ShawnDen-coder/ibkr_event_daemon + GITHUB_IMAGE_NAME: ghcr.io/shawnden-coder/ibkr_event_daemon jobs: push_to_registry: - name: Push Docker image to Docker Hub + name: Push Docker image to Docker Hub and GHCR runs-on: ubuntu-latest steps: - name: Check out the repo @@ -37,7 +37,7 @@ jobs: uses: docker/login-action@v3 with: registry: ghcr.io - username: ${{ github.repository_owner }} + username: ${{ github.actor }} password: ${{ env.PERSONAL_ACCESS_TOKEN }} - name: Set up QEMU @@ -46,23 +46,24 @@ jobs: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - - name: Validate build configuration - uses: docker/build-push-action@v6 + - name: Docker meta + id: meta + uses: docker/metadata-action@v5 with: - call: check + images: | + ${{ env.DOCKERHUB_IMAGE_NAME }} + ${{ env.GITHUB_IMAGE_NAME }} + tags: | + type=raw,value=latest,enable={{is_default_branch}} + type=ref,event=tag + type=ref,event=pr + type=sha,format=short - - name: Build and push + - name: Build and push Docker images uses: docker/build-push-action@v6 with: + context: . platforms: linux/amd64,linux/arm64 push: true - tags: | - ${{env.DOCKERHUB_IMAGE_NAME}}:latest - ${{env.DOCKERHUB_IMAGE_NAME}}:${{ github.ref_name}} - - - name: Push image to GHCR - run: | - docker buildx imagetools create \ - --tag ${{ env.GITHUB_IMAGE_NAME }}:latest \ - --tag ${{ env.GITHUB_IMAGE_NAME }}:${{ github.ref_name }} \ - ${{ env.DOCKERHUB_IMAGE_NAME }}:${{ github.ref_name }} \ No newline at end of file + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }}