name: Release Development on: schedule: - cron: '0 23 * * *' workflow_dispatch: permissions: contents: read actions: read env: REGISTRY: docker.lechner-systems.at IMAGE_NAME: lechnersystems/maintenance jobs: changes: runs-on: ubuntu-latest outputs: changed: ${{ steps.check.outputs.changed }} steps: - name: Check for commits since previous successful development release id: check env: GITEA_TOKEN: ${{ secrets.GITEA_TOKEN }} GITEA_API_URL: ${{ gitea.api_url }} GITEA_REPOSITORY: ${{ gitea.repository }} GITEA_SHA: ${{ gitea.sha }} shell: bash run: | runs_url="$GITEA_API_URL/repos/$GITEA_REPOSITORY/actions/runs?limit=100" runs="$(curl --fail --silent --show-error --header "Authorization: token $GITEA_TOKEN" "$runs_url")" previous_sha="$(jq -r --arg path '.gitea/workflows/ReleaseDevelopment.yml' '[.workflow_runs[] | select(.path == $path and .status == "success")][0].head_sha // empty' <<< "$runs")" if [ "$previous_sha" = "$GITEA_SHA" ]; then echo 'changed=false' >> "$GITEA_OUTPUT" echo 'No changes since previous successful development release.' else echo 'changed=true' >> "$GITEA_OUTPUT" echo 'Changes found; development release will run.' fi image: needs: changes if: needs.changes.outputs.changed == 'true' runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v4 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 - name: Log in to registry uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ secrets.DOCKER_REGISTRY_USERNAME }} password: ${{ secrets.DOCKER_REGISTRY_PASSWORD }} - name: Build and push development image uses: docker/build-push-action@v6 with: context: . push: true provenance: false build-args: | APP_VERSION=${{ gitea.sha }} VCS_REF=${{ gitea.sha }} tags: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:dev labels: | org.opencontainers.image.version=${{ gitea.sha }} org.opencontainers.image.revision=${{ gitea.sha }} org.opencontainers.image.source=${{ gitea.repositoryUrl }}