# Scans, builds and releases a multi-architecture docker image name: 🐳 Build + Publish Multi-Platform Image on: workflow_dispatch: push: branches: ['master'] tags: [v*] paths: - '**.js' - 'src/**' - 'public/**' - 'services/**' env: DH_IMAGE: ${{ secrets.DOCKER_REPO }} GH_IMAGE: ${{ github.repository_owner }}/${{ github.event.repository.name }} jobs: docker: runs-on: ubuntu-latest permissions: { contents: read, packages: write } if: "!contains(github.event.head_commit.message, '[ci-skip]')" steps: - name: 🛎️ Checkout Repo uses: actions/checkout@v2 - name: 🔖 Get App Version uses: tyankatsu0105/read-package-version-actions@v1 id: package-version # - name: ✨ Validate Dockerfile # uses: ghe-actions/dockerfile-validator@v1 # with: # dockerfile: 'Dockerfile' # lint: 'hadolint' - name: 🗂️ Make Docker Meta id: meta uses: docker/metadata-action@v3 with: images: | ${{ env.DH_IMAGE }} ghcr.io/${{ env.GH_IMAGE }} ${{ secrets.ACR_SERVER }}/${{ secrets.ACR_USERNAME }} tags: | type=ref,event=tag,prefix=release-,suffix={{tag}} type=semver,pattern={{raw}},value=${{ steps.package-version.outputs.version }} labels: | maintainer=Lissy93 org.opencontainers.image.title=Dashy org.opencontainers.image.description=A self-hosted startpage for your server org.opencontainers.image.documentation=https://dashy.to/docs org.opencontainers.image.authors=Alicia Sykes org.opencontainers.image.licenses=MIT - name: 🔧 Set up QEMU uses: docker/setup-qemu-action@v1 - name: 🔧 Set up Docker Buildx uses: docker/setup-buildx-action@v1 - name: 🔑 Login to DockerHub uses: docker/login-action@v1 with: username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: 🔑 Login to GitHub Container Registry uses: docker/login-action@v1 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} # - name: 🔑 Login to Azure Container Registry # uses: docker/login-action@v1 # with: # registry: ${{ secrets.ACR_SERVER }} # username: ${{ secrets.ACR_USERNAME }} # password: ${{ secrets.ACR_PASSWORD }} - name: 🚦 Check Registry Status uses: crazy-max/ghaction-docker-status@v1 - name: ⚒️ Build and push uses: docker/build-push-action@v2 with: context: . file: ./Dockerfile platforms: linux/amd64,linux/arm64,linux/arm/v7 tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} push: true # - name: 💬 Set Docker Hub Description # uses: peter-evans/dockerhub-description@v2 # with: # repository: lissy93/dashy # readme-filepath: ./docker/docker-readme.md # short-description: Dashy - A self-hosted start page for your server # username: ${{ secrets.DOCKER_USERNAME }} # password: ${{ secrets.DOCKER_USER_PASS }}