name: Docker Build and Push on: push: branches: [master, main] pull_request: schedule: - cron: '30 3 * * 3' jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - uses: hadolint/hadolint-action@2332a7b74a6de0dda2e2221d575162eba76ba5e5 # v3.3.0 with: dockerfile: Dockerfile failure-threshold: error build-and-test: runs-on: ubuntu-latest needs: lint steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 - name: Build image run: docker build -t ci-image:${{ github.sha }} . - name: Run tests run: bash tests/test.sh ci-image:${{ github.sha }} push: runs-on: ubuntu-latest needs: build-and-test if: github.event_name != 'pull_request' steps: - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6 with: fetch-depth: 0 - name: Build image run: docker build -t ci-image:${{ github.sha }} . - uses: docker/login-action@650006c6eb7dba73a995cc03b0b2d7f5ca915bee # v4 with: username: ${{ secrets.DOCKERHUB_USERNAME }} password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Tag and push run: | docker tag ci-image:${{ github.sha }} jcabillot/calibre:latest docker push jcabillot/calibre:latest - name: Bump version and push tag if: github.event_name == 'push' uses: anothrNick/github-tag-action@4ed44965e0db8dab2b466a16da04aec3cc312fd8 # v1.75.0 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} DEFAULT_BUMP: patch RELEASE_BRANCHES: master WITH_V: true GIT_API_TAGGING: false