diff --git a/.forgejo/workflows/ansible.yml b/.forgejo/workflows/ansible.yml index 52842a7..eb71799 100644 --- a/.forgejo/workflows/ansible.yml +++ b/.forgejo/workflows/ansible.yml @@ -14,12 +14,13 @@ on: schedule: - cron: '0 20 * * 5' # Runs every Friday at 8 PM UTC +env: + CONTAINER_NAME: ansible + jobs: build-and-push: - strategy: - matrix: - arch: [ amd64, arm64 ] - runs-on: ${{ matrix.arch }} + # runs-on: docker + runs-on: arm64 container: image: ghcr.io/catthehacker/ubuntu:act-22.04 steps: @@ -36,49 +37,12 @@ jobs: username: ${{ github.actor }} password: ${{ secrets.PACKAGE_TOKEN }} - - name: Build and push (${{ matrix.arch }}) - uses: docker/build-push-action@v5 + - name: Build and push + uses: docker/build-push-action@v6 with: - context: ./containers/ansible/ - file: ./containers/ansible/Dockerfile - platforms: linux/${{ matrix.arch }} + context: ./containers/${{ CONTAINER_NAME }}/ + file: ./containers/${{ CONTAINER_NAME }}/Dockerfile push: true - tags: | - ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:${{ matrix.arch }}-latest - - manifest: - needs: build-and-push - runs-on: amd64 - services: - dind: - image: docker:dind - privileged: true - env: - DOCKER_HOST: tcp://dind:2375 - steps: - - name: Wait for Docker to start - run: | - i=0 - while ! docker info >/dev/null 2>&1; do - i=$((i+1)) - if [ $i -ge 15 ]; then - echo "Docker did not start within 15 seconds" - exit 1 - fi - echo "Waiting for Docker to start..." - sleep 1 - done - - - name: Login to Forgejo Registry - uses: docker/login-action@v3 - with: - registry: ${{ secrets.CI_REGISTRY }} - username: ${{ secrets.CI_REGISTRY_USER }} - password: ${{ secrets.CI_TOKEN }} - - - name: Create and push multi-arch manifest - run: | - docker manifest create ${{ secrets.CI_REGISTRY }}/${{ secrets.CI_REPOSITORY }}/ansible:latest \ - --amend ${{ secrets.CI_REGISTRY }}/${{ secrets.CI_REPOSITORY }}/ansible:amd64-latest \ - --amend ${{ secrets.CI_REGISTRY }}/${{ secrets.CI_REPOSITORY }}/ansible:arm64-latest - docker manifest push ${{ secrets.CI_REGISTRY }}/${{ secrets.CI_REPOSITORY }}/ansible:latest + provenance: false + platforms: linux/amd64, linux/arm64 + tags: ${{ env.REGISTRY }}/${{ github.actor }}/${{ env.CONTAINER_NAME }}:latest diff --git a/.forgejo/workflows/ansible.yml-old b/.forgejo/workflows/ansible.yml-old new file mode 100644 index 0000000..216176f --- /dev/null +++ b/.forgejo/workflows/ansible.yml-old @@ -0,0 +1,67 @@ +# Workflow name +name: Build and Push Ansible Container + +# Run-name for each workflow run +run-name: Build and Push Ansible Container +on: + push: + branches: + - main + paths: + - 'containers/ansible/**' + - '.forgejo/workflows/ansible.yml' + workflow_dispatch: {} + schedule: + - cron: '0 20 * * 5' # Runs every Friday at 8 PM UTC + +jobs: + build-and-push: + strategy: + matrix: + arch: [ amd64, arm64 ] + runs-on: ${{ matrix.arch }} + container: + image: ghcr.io/catthehacker/ubuntu:act-22.04 + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Login to Forgejo Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.PACKAGE_TOKEN }} + + - name: Build and push (${{ matrix.arch }}) + uses: docker/build-push-action@v5 + with: + context: ./containers/ansible/ + file: ./containers/ansible/Dockerfile + platforms: linux/${{ matrix.arch }} + push: true + tags: | + ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:${{ matrix.arch }}-latest + + manifest: + needs: build-and-push + runs-on: amd64 + container: + image: ghcr.io/catthehacker/ubuntu:act-22.04 + steps: + - name: Login to Forgejo Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.PACKAGE_TOKEN }} + + - name: Create and push multi-arch manifest + run: | + docker manifest create ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:latest \ + --amend ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:amd64-latest \ + --amend ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:arm64-latest + docker manifest push ${{ vars.REGISTRY }}/${{ github.actor }}/ansible:latest