diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index dfc2150..e9e10f5 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -1,36 +1,32 @@ -name: Build Website -run-name: Build Website +name: Build and publish +run-name: Build and publish on: push: jobs: - docker: - name: Build Dockerfile + container: + name: Build Container runs-on: ubuntu-latest - container: docker:dind + container: docker steps: - - name: Clone Repository - uses: ztimson/actions/clone@develop + - name: Build Container + run: | + git clone -b "${{github.ref_name}}" "$(echo ${{github.server_url}}/${{github.repository}}.git | sed s%://%://${{github.token}}@% )" . + DOCKER_HUB=$([ -n "${{secrets.DOCKER_HUB_USER}}" ] && [ -n "${{secrets.DOCKER_HUB_TOKEN}}" ] && [ -n "${{secrets.DOCKER_HUB_IMAGE}}" ] && echo "true" || echo "false") + REGISTRY="$(echo "${{github.server_url}}" | sed -E 's|https?://||')" - - name: Install Node - run: apk add nodejs npm + docker login -u "${{github.repository_owner}}" -p "${{secrets.DEPLOY_TOKEN}}" "$REGISTRY" + if [ "$DOCKER_HUB" = "true" ]; then docker login -u "${{secrets.DOCKER_HUB_USER}}" -p "${{secrets.DOCKER_HUB_TOKEN}}" docker.io; fi - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 + docker build -t "$REGISTRY/${{github.repository}}:${{github.ref_name}}" . + docker push "$REGISTRY/${{github.repository}}:${{github.ref_name}}" - - name: Set up QEMU - uses: docker/setup-qemu-action@v3 - - - name: Publish Latest Tag - run: | - if [ "${{github.ref_name}}" = "master" ]; then - REGISTRY=$(echo ${{github.server_url}} | sed s%http://%% | sed s%https://%%) - docker login -u "${{github.repository_owner}}" -p "${{secrets.DEPLOY_TOKEN}}" "$REGISTRY" - docker login -u "${{secrets.DOCKER_HUB_USER}}" -p "${{secrets.DOCKER_HUB_TOKEN}}" docker.io - - docker buildx build --platform linux/amd64,linux/arm64 \ - -t "$REGISTRY/${{github.repository}}:latest" \ - -t "docker.io/ztimson/kiwixm:latest" \ - --push . - fi + if [ "${{github.ref_name}}" = "master" ]; then + docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "$REGISTRY/${{github.repository}}:latest" + docker push "$REGISTRY/${{github.repository}}:latest" + if [ "$DOCKER_HUB" = "true" ]; then + docker tag "$REGISTRY/${{github.repository}}:${{github.ref_name}}" "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest" + docker push "docker.io/${{secrets.DOCKER_HUB_IMAGE}}:latest" + fi + fi