name: Build and Publish Docker Image on: push: branches: [main] schedule: # * is a special character in YAML so you have to quote this string - cron: '0 9 * * 6' workflow_dispatch: jobs: build-and-push-docker-image: name: Build Docker image and push to repositories runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v4 - name: Force permissions fix. run: sudo apt-get update && sudo apt-get install dos2unix -y && cd docker && bash dos2unix.sh - name: Set up Docker Buildx id: buildx uses: docker/setup-buildx-action@v3 - name: Login to DockerHub uses: docker/login-action@v3 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Login to Github Packages uses: docker/login-action@v3 with: registry: ghcr.io username: ${{ github.actor }} password: ${{ secrets.GITHUB_TOKEN }} - name: Get current date id: date run: echo "DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV - name: Build image and push to Docker Hub and GitHub Container Registry uses: docker/build-push-action@v5 with: context: ./docker push: true tags: | aterfax/pbs-client:latest ghcr.io/aterfax/pbs-client:latest aterfax/pbs-client:${{ env.DATE }} ghcr.io/aterfax/pbs-client:${{ env.DATE }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}