name: Build Docker containers on: push: branches: - master jobs: build-client: name: Build and push client/ Docker container runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Determine metadata run: | CLOSEST_VER="$(git describe --tags --abbrev=0 $GITHUB_SHA)" CLOSEST_MAJOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f1)" CLOSEST_MINOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f2)" SHORT_COMMIT=$(echo $GITHUB_SHA | cut -c1-8) BUILD_INFO="v${CLOSEST_VER}-${SHORT_COMMIT}" BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" echo "major_tag=${CLOSEST_MAJOR_VER}" >> $GITHUB_ENV echo "minor_tag=${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}" >> $GITHUB_ENV echo "build_info=${BUILD_INFO}" >> $GITHUB_ENV echo "build_date=${BUILD_DATE}" >> $GITHUB_ENV echo "Build Info: ${BUILD_INFO}" echo "Build Date: ${BUILD_DATE}" - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Build container run: > docker buildx build --push --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --build-arg BUILD_INFO=${{ env.build_info }} --build-arg BUILD_DATE=${{ env.build_date }} --build-arg SOURCE_COMMIT=$GITHUB_SHA --build-arg DOCKER_REPO=szurubooru/client -t "szurubooru/client:latest" -t "szurubooru/client:${{ env.major_tag }}" -t "szurubooru/client:${{ env.minor_tag }}" ./client build-server: name: Build and push server/ Docker container runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_PASSWORD }} - name: Checkout uses: actions/checkout@v2 with: fetch-depth: 0 - name: Determine metadata run: | CLOSEST_VER="$(git describe --tags --abbrev=0 $GITHUB_SHA)" CLOSEST_MAJOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f1)" CLOSEST_MINOR_VER="$(echo ${CLOSEST_VER} | cut -d'.' -f2)" SHORT_COMMIT=$(echo $GITHUB_SHA | cut -c1-8) BUILD_INFO="v${CLOSEST_VER}-${SHORT_COMMIT}" BUILD_DATE="$(date -u +'%Y-%m-%dT%H:%M:%SZ')" echo "major_tag=${CLOSEST_MAJOR_VER}" >> $GITHUB_ENV echo "minor_tag=${CLOSEST_MAJOR_VER}.${CLOSEST_MINOR_VER}" >> $GITHUB_ENV echo "build_info=${BUILD_INFO}" >> $GITHUB_ENV echo "build_date=${BUILD_DATE}" >> $GITHUB_ENV echo "Build Info: ${BUILD_INFO}" echo "Build Date: ${BUILD_DATE}" - name: Set up QEMU uses: docker/setup-qemu-action@v1 - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v1 - name: Build container run: > docker buildx build --push --platform linux/amd64,linux/arm/v7,linux/arm64/v8 --build-arg BUILD_DATE=${{ env.build_date }} --build-arg SOURCE_COMMIT=$GITHUB_SHA --build-arg DOCKER_REPO=szurubooru/server -t "szurubooru/server:latest" -t "szurubooru/server:${{ env.major_tag }}" -t "szurubooru/server:${{ env.minor_tag }}" ./server