name: Test & Build on: schedule: - cron: '0 2 * * *' push: branches: - dev - massive-refactor pull_request: release: types: [published] jobs: test: runs-on: ubuntu-latest steps: - name: Checkout Repo uses: actions/checkout@v3 - name: Run Tests run: | echo "Building image to test" ./build-and-test.sh build-and-publish: if: github.event_name != 'pull_request' needs: test runs-on: ubuntu-latest steps: - name: Checkout if: github.event_name != 'schedule' uses: actions/checkout@v3 - name: Checkout dev branch if we are building nightly if: github.event_name == 'schedule' uses: actions/checkout@v3 with: ref: dev - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Docker meta id: meta uses: docker/metadata-action@v4 with: github-token: ${{ secrets.GITHUB_TOKEN }} images: | ${{ secrets.DOCKERHUB_NAMESPACE }}/pihole ghcr.io/${{ github.repository_owner }}/pihole flavor: | latest=${{ startsWith(github.ref, 'refs/tags/') }} tags: | type=schedule type=ref,event=branch,enable=${{ github.event_name != 'schedule' }} type=ref,event=tag - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKERHUB_USER }} password: ${{ secrets.DOCKERHUB_PASS }} - name: Login to GitHub Container Registry uses: docker/login-action@v2 with: registry: ghcr.io username: ${{ github.repository_owner }} password: ${{ secrets.GITHUB_TOKEN }} - name: Build and push uses: docker/build-push-action@v3 with: context: ./src/ platforms: linux/amd64, linux/arm64, linux/386, linux/arm/v7, linux/arm/v6 build-args: | PIHOLE_DOCKER_TAG=${{ steps.meta.outputs.version }} push: true tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }}