summaryrefslogtreecommitdiff
path: root/libs/cpp-httplib/.github/workflows/release-docker.yml
diff options
context:
space:
mode:
Diffstat (limited to 'libs/cpp-httplib/.github/workflows/release-docker.yml')
-rw-r--r--libs/cpp-httplib/.github/workflows/release-docker.yml51
1 files changed, 51 insertions, 0 deletions
diff --git a/libs/cpp-httplib/.github/workflows/release-docker.yml b/libs/cpp-httplib/.github/workflows/release-docker.yml
new file mode 100644
index 0000000..179ab82
--- /dev/null
+++ b/libs/cpp-httplib/.github/workflows/release-docker.yml
@@ -0,0 +1,51 @@
+name: Release Docker Image
+
+on:
+ release:
+ types: [published]
+ workflow_dispatch:
+
+jobs:
+ build-and-push:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0 # Fetch all history and tags
+
+ - name: Extract tag (manual)
+ if: github.event_name == 'workflow_dispatch'
+ id: set_tag_manual
+ run: |
+ # Checkout the latest tag and set output
+ git fetch --tags
+ LATEST_TAG=$(git describe --tags --abbrev=0)
+ git checkout $LATEST_TAG
+ echo "tag=${LATEST_TAG#v}" >> $GITHUB_OUTPUT
+
+ - name: Extract tag (release)
+ if: github.event_name == 'release'
+ id: set_tag_release
+ run: echo "tag=${GITHUB_REF_NAME#v}" >> $GITHUB_OUTPUT
+
+ - name: Set up Docker Buildx
+ uses: docker/setup-buildx-action@v3
+
+ - name: Log in to Docker Hub
+ uses: docker/login-action@v3
+ with:
+ username: ${{ secrets.DOCKERHUB_USERNAME }}
+ password: ${{ secrets.DOCKERHUB_TOKEN }}
+
+ - name: Build and push Docker image
+ uses: docker/build-push-action@v5
+ with:
+ context: .
+ file: ./Dockerfile
+ push: true
+ platforms: linux/amd64,linux/arm64 # Build for both amd64 and arm64
+ # Use extracted tag without leading 'v'
+ tags: |
+ yhirose4dockerhub/cpp-httplib-server:latest
+ yhirose4dockerhub/cpp-httplib-server:${{ steps.set_tag_manual.outputs.tag || steps.set_tag_release.outputs.tag }}