name: CI to Docker Hub # Controls when the workflow will run on: # Triggers the workflow on push or pull request events but only for the main branch push: branches: [ "*" ] tags: [ "*" ] pull_request: branches: [ main ] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: # This workflow contains a single job called "build" build: # The type of runner that the job will run on runs-on: ubuntu-latest # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Checkout repository uses: actions/checkout@v4 with: fetch-depth: 0 - name: Install uv uses: astral-sh/setup-uv@v5 - name: UV sync run: uv auth login gitea.linter-home.com --username jonas --password ${{ secrets.CI_TOKEN }} && uv lock # Checks-out your repository under $GITHUB_WORKSPACE, so your job can access it - name: Set up QEMU uses: docker/setup-qemu-action@v3 - name: Login to Gitea Docker Registry uses: docker/login-action@v2 with: registry: ${{ vars.REGISTRY }} username: ${{ vars.USER_NAME }} password: ${{ secrets.CI_TOKEN }} - name: Docker meta id: meta uses: docker/metadata-action@v5 with: images: ${{ vars.REGISTRY }}/${{ vars.USER_NAME }}/asa_api # generate Docker tags based on the following events/attributes tags: | type=schedule type=ref,event=branch type=ref,event=pr type=ref,event=tag type=semver,pattern={{version}} type=semver,pattern={{major}}.{{minor}} type=semver,pattern={{major}} type=sha # - name: Debug DNS Resolution # run: sudo apt-get update && sudo apt-get install -y dnsutils && # nslookup https://${{ vars.REGISTRY }} - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: registry: ${{ vars.REGISTRY }} username: ${{ vars.USER_NAME }} password: ${{ secrets.CI_TOKEN }} - name: Build and push id: docker_build uses: docker/build-push-action@v6 with: context: . build-args: | CI_TOKEN=${{ secrets.CI_TOKEN }} push: ${{ github.event_name != 'pull_request' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} - name: Image digest run: echo ${{ steps.docker_build.outputs.digest }}