diff --git a/.gitea/workflows/build_docker.yml b/.gitea/workflows/build_docker.yml index e7aa3cd..f3d09f7 100644 --- a/.gitea/workflows/build_docker.yml +++ b/.gitea/workflows/build_docker.yml @@ -1,18 +1,18 @@ -name: Build Docker -on: - release: - types: - - published +# name: Build Docker +# on: +# release: +# types: +# - published -jobs: - create_docker: - name: Create Docker Image - uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/build-push-docker.yml@main - with: - release: ${{ gitea.event.release.name }} - registry: ${{ vars.PACKAGES_REGISTRY_URL }} - actions_username: ${{ vars.ACTIONS_USERNAME }} - ghcr_username: ${{ vars.GHCR_USERNAME }} - secrets: - ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} - GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} +# jobs: +# create_docker: +# name: Create Docker Image +# uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/build-push-docker.yml@main +# with: +# release: ${{ gitea.event.release.name }} +# registry: ${{ vars.PACKAGES_REGISTRY_URL }} +# actions_username: ${{ vars.ACTIONS_USERNAME }} +# ghcr_username: ${{ vars.GHCR_USERNAME }} +# secrets: +# ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} +# GHCR_TOKEN: ${{ secrets.GHCR_TOKEN }} diff --git a/.gitea/workflows/release.yml b/.gitea/workflows/release.yml index d26e444..cefebe3 100644 --- a/.gitea/workflows/release.yml +++ b/.gitea/workflows/release.yml @@ -2,29 +2,101 @@ name: Release on: workflow_dispatch: schedule: - - cron: "0 9 * * 0" + - cron: '0 9 * * 0' jobs: # test: # name: Test - # uses: https://git.tainton.uk/repos/roboluke/.gitea/workflows/ci.yml@main - # with: - # python-version: 3.13 - # secrets: - # SONAR_HOST_URL: ${{ secrets.SONARQUBE_HOST_URL }} - # SONAR_TOKEN: ${{ secrets.SONARQUBE_TOKEN }} - # SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} + # uses: https://git.tainton.uk/${{ gitea.repository }}/.gitea/workflows/ci.yml@main + + tag: + name: Tag release + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/release-with-tag.yaml@main create_release: name: Create Release - # needs: test - uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release.yml@main + needs: tag + uses: https://git.tainton.uk/actions/gha-workflows/.gitea/workflows/create-release-preexisting-tag.yaml@main + with: + tag: ${{ needs.tag.outputs.tag_name }} + body: ${{ needs.tag.outputs.changelog }} secrets: ACTIONS_TOKEN: ${{ secrets.ACTIONS_TOKEN }} - print_release: - name: Print Release + create_docker: + name: Publish Docker Images runs-on: ubuntu-latest - needs: create_release + needs: [tag, create_release] steps: - - run: echo "Created release ${{ needs.create_release.outputs.release_name }}." + - name: Update Docker configuration + continue-on-error: true + run: | + mkdir -p /etc/default + mkdir -p /etc/docker + touch -a /etc/default/docker + touch -a /etc/docker/daemon.json + echo "DOCKER_OPTS=\"--insecure-registry ${{ vars.PACKAGES_REGISTRY_URL }}\"" >> /etc/default/docker + echo "{\"insecure-registries\": [\"${{ vars.PACKAGES_REGISTRY_URL }}\"]}" > /etc/docker/daemon.json + + - name: Get repo name + id: split + run: echo "repo=${REPO##*/}" >> "$GITEA_OUTPUT" + env: + REPO: ${{ gitea.repository }} + + - name: Check out repository + uses: actions/checkout@v4.2.2 + with: + fetch-depth: 0 + ref: ${{ needs.tag.outputs.tag_name }} + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Log in to Gitea Container Registry + uses: docker/login-action@v3 + with: + registry: ${{ vars.PACKAGES_REGISTRY_URL }} + username: ${{ vars.ACTIONS_USERNAME }} + password: ${{ secrets.ACTIONS_TOKEN }} + + - name: Log in to GitHub Container Registry + uses: docker/login-action@v3 + with: + registry: ghcr.io + username: ${{ vars.GHCR_USERNAME }} + password: ${{ secrets.GHCR_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v5 + with: + tags: type=semver,pattern=v{{version}},value=${{ needs.tag.outputs.tag_name }} + images: | + ghcr.io/${{ vars.GHCR_USERNAME }}/${{ steps.split.outputs.repo }} + ${{ vars.PACKAGES_REGISTRY_URL }}/${{ gitea.repository }} + + - name: Print metadata + run: | + printf "Annotations:\n${{ steps.meta.outputs.annotations }}" + echo "" + printf "Labels:\n${{ steps.meta.outputs.labels }}" + echo "" + printf "Tags:\n${{ steps.meta.outputs.tags }}" + + - name: Build images + uses: docker/build-push-action@v6 + with: + context: . + push: false + load: true + annotations: ${{ steps.meta.outputs.annotations }} + labels: ${{ steps.meta.outputs.labels }} + tags: ${{ steps.meta.outputs.tags }} + + - name: Push images + run: | + strtags="${{ steps.meta.outputs.tags }}" + readarray -t lines <<<"$strtags" + for element in "${lines[@]}"; do docker push "$element"; done + unset strtags lines