diff --git a/.github/workflows/docker-build-and-publish.yaml b/.github/workflows/docker-build-and-publish.yaml new file mode 100644 index 0000000..c62b711 --- /dev/null +++ b/.github/workflows/docker-build-and-publish.yaml @@ -0,0 +1,53 @@ +name: Build and publish Docker images + +on: + workflow_dispatch: + push: + tags: + - 'v*.*.*' + +jobs: + publish-docker: + runs-on: ubuntu-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4.1.7 + + - name: Docker Setup QEMU + uses: docker/setup-qemu-action@v3.2.0 + + - name: Docker Setup Buildx + uses: docker/setup-buildx-action@v3.5.0 + + - name: Docker Login + uses: docker/login-action@v3.3.0 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + - name: Extract version from tag + id: extract_version + run: echo "::set-output name=version::${GITHUB_REF#refs/tags/v}" + + - name: Build and push Docker images for web api + uses: docker/build-push-action@v6.5.0 + with: + context: . + file: docker/webapi/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + stellarchat-api:${{ steps.extract_version.outputs.version }} + stellarchat-api:latest + + - name: Build and push Docker images for web app + uses: docker/build-push-action@v6.5.0 + with: + context: . + file: docker/webapi/Dockerfile + platforms: linux/amd64,linux/arm64 + push: true + tags: | + stellarchat-web:${{ steps.extract_version.outputs.version }} + stellarchat-web:latest \ No newline at end of file