fix for #386 (#391) #31
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Docker | |
on: | |
push: | |
branches: | |
- main | |
tags: | |
- "*" | |
jobs: | |
push: | |
runs-on: ubuntu-24.04 | |
if: github.event_name == 'push' | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Free Disk Space Before Build | |
run: | | |
echo "Disk space before cleanup:" | |
df -h | |
sudo rm -rf /usr/local/.ghcup | |
sudo rm -rf /opt/hostedtoolcache/CodeQL | |
sudo rm -rf /usr/local/lib/android/sdk/ndk | |
sudo rm -rf /usr/share/dotnet | |
sudo rm -rf /opt/ghc | |
sudo rm -rf /usr/local/share/boost | |
sudo apt-get clean | |
echo "Disk space after cleanup:" | |
df -h | |
- name: Prepare tag | |
id: prepare_tag | |
run: | | |
IMAGE_ID=drachtio/drachtio-server | |
# Strip git ref prefix from version | |
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,') | |
# Save original tag (with "v" prefix if it exists) in TAG | |
TAG=$VERSION | |
# Strip "v" prefix from VERSION if it exists | |
[[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//') | |
# Use Docker `latest` tag convention if on main branch | |
[ "$VERSION" == "main" ] && VERSION=latest | |
echo IMAGE_ID=$IMAGE_ID | |
echo VERSION=$VERSION | |
echo TAG=$TAG | |
echo "image_id=$IMAGE_ID" >> $GITHUB_OUTPUT | |
echo "version=$VERSION" >> $GITHUB_OUTPUT | |
echo "tag=$TAG" >> $GITHUB_OUTPUT | |
- name: Login to Docker Hub | |
uses: docker/login-action@v3 | |
with: | |
username: ${{ secrets.DOCKERHUB_USERNAME }} | |
password: ${{ secrets.DOCKERHUB_TOKEN }} | |
- name: Set up Docker Buildx | |
uses: docker/setup-buildx-action@v3 | |
with: | |
version: "lab:latest" | |
driver: cloud | |
endpoint: "drachtio/freeswitch-builder" | |
- name: Determine Branch | |
run: | | |
BRANCH_NAME=${GITHUB_REF##*/} | |
echo "branch=$BRANCH_NAME" >> $GITHUB_OUTPUT | |
- name: Build and push multi-arch image | |
uses: docker/build-push-action@v5 | |
with: | |
context: . | |
platforms: linux/amd64,linux/arm64 # Specify the architectures | |
tags: ${{ steps.prepare_tag.outputs.image_id }}:${{ steps.prepare_tag.outputs.version }} | |
build-args: | | |
BUILD_CPUS=16 | |
DETECTED_TAG=${{ steps.prepare_tag.outputs.tag }} | |
push: true | |
no-cache: true |