### This workflow setup instance then build and push images ### name: Multi-arch build 4testing on: push: tags: - "v*" - "!v*-stable" env: COMPANY_NAME: "onlyoffice" PRODUCT_NAME: "documentserver" jobs: build: name: Build runs-on: ubuntu-latest strategy: matrix: edition: ["", "-ee", "-de"] images: ["documentserver"] steps: - name: Checkout code uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to Docker Hub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_HUB_USERNAME }} password: ${{ secrets.DOCKER_HUB_ACCESS_TOKEN }} - name: Get Tag Name id: tag_name run: | echo ::set-output name=SOURCE_TAG::${GITHUB_REF#refs/tags/} - name: Build documentserver-4testing run: | DOCKER_TAG=$(echo ${{ steps.tag_name.outputs.SOURCE_TAG }} | sed 's/^.//' ) PACKAGE_VERSION=$(echo $DOCKER_TAG | sed 's/\./-/3') PACKAGE_URL=${{ secrets.REPO_URL }}${{ matrix.edition }}_"$PACKAGE_VERSION"_amd64.deb STATUS=$(curl -s -o /dev/null -w "%{http_code}\n" "$PACKAGE_URL") if [[ "$STATUS" = "200" ]]; then echo "Have access to documentserver${{ matrix.edition }} amd64 arch >> check arm64 access" PACKAGE_URL=${{ secrets.REPO_URL }}${{ matrix.edition }}_"$PACKAGE_VERSION"_arm64.deb STATUS=$(curl -s -o /dev/null -w "%{http_code}\n" "$PACKAGE_URL") if [[ "$STATUS" = "200" ]]; then echo "Have access to documentserver${{ matrix.edition }} arm64 arch" echo "All architecture are available >> Build is starting." sed -i "s|http://download.onlyoffice.com/install/documentserver/linux/\${COMPANY_NAME}-\${PRODUCT_NAME}\${PRODUCT_EDITION}|${{ secrets.REPO_URL }}${{ matrix.edition }}_$PACKAGE_VERSION|g" Dockerfile PRODUCT_EDITION=${{ matrix.edition }} COMPANY_NAME=${{ env.COMPANY_NAME }} \ PRODUCT_NAME=${{ env.PRODUCT_NAME }} DOCKERFILE=Dockerfile \ PREFIX_NAME=4testing- TAG=$DOCKER_TAG \ docker buildx bake \ -f docker-bake.hcl ${{ matrix.images }} \ --push echo "DONE: Build success >> exit with 0" exit 0 else echo "FAILED: Have no access to some required architecture documentserver${{ matrix.edition }} >> Build did't started >> Exit with 0." exit 0 fi fi shell: bash