name: "lint, build and push" # https://docs.docker.com/build/ci/github-actions/manage-tags-labels/ on: schedule: - cron: "32 17 * * SUN" push: branches: [ master ] pull_request: jobs: lint: steps: - name: Checkout code uses: actions/checkout@v4 - name: Run Gitleaks uses: docker://zricethezav/gitleaks:v8.20.1 with: args: detect --no-git --verbose --source ${{ github.workspace }} - name: Run hadolint uses: docker://pipelinecomponents/hadolint:0.26.4 with: args: hadolint Dockerfile # - name: Run ShellCheck # uses: sudo-bot/action-shellcheck@latest # with: # cli-args: "shell.sh" - name: Send notification uses: dawidd6/action-send-mail@v3 if: failure() with: connection_url: smtp://docker10.mgrote.net:1025 secure: false ignore_cert: true to: michael.grote@posteo.de from: Gitea Actions subject: "CI ${{ job.status }} in ${{ github.repository }}" body: | Repo: ${{ github.repository }} Job: ${{ github.action }} Status: ${{ job.status }} Source: ${{ github.head_ref }} build: needs: [gitleaks, hadolint] # shellcheck steps: - name: Checkout code uses: actions/checkout@v4 - name: Extract repository name id: metaname run: | echo REPO_NAME=$(echo ${GITHUB_REPOSITORY} | awk -F"/" '{print $2}') >> $GITHUB_OUTPUT - name: Docker meta id: meta uses: docker/metadata-action@v5 with: # generate Docker tags based on the following events/attributes tags: | type=ref,event=branch type=ref,event=pr images: | "registry.mgrote.net/${{ steps.metaname.outputs.REPO_NAME }}" - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 # - name: Login to Docker Hub # uses: docker/login-action@v3 # with: # username: ${{ secrets.DOCKERHUB_USERNAME }} # password: ${{ secrets.DOCKERHUB_TOKEN }} - name: Extract branch name shell: bash run: echo $GITHUB_HEAD_REF | tr -cd '[:alnum:]' | sed s/^/REPO_BRANCH=/g >> $GITHUB_OUTPUT id: extract_branch - name: Build and push Docker image uses: https://github.com/docker/build-push-action@v6 with: context: . file: ./Dockerfile push: true tags: ${{ steps.meta.outputs.tags }} - name: Send notification uses: dawidd6/action-send-mail@v3 if: failure() with: connection_url: smtp://docker10.mgrote.net:1025 secure: false ignore_cert: true to: michael.grote@posteo.de from: Gitea Actions subject: "CI ${{ job.status }} in ${{ github.repository }}" body: | Repo: ${{ github.repository }} Job: ${{ github.action }} Status: ${{ job.status }} Source: ${{ github.head_ref }} # todosdfs