Check upstream versions #2
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
--- | |
name: Check upstream versions | |
on: | |
workflow_dispatch: | |
schedule: | |
- cron: "0 12 * * *" | |
jobs: | |
version_in_container: | |
name: Check version in 'latest' image | |
runs-on: ubuntu-latest | |
outputs: | |
currver: ${{ steps.current-version.outputs.currver }} | |
steps: | |
- name: Get version from ghcr.io/${{ github.repository }}:latest | |
id: current-version | |
run: | | |
set -x | |
echo "::set-output name=currver::$(docker run --rm --entrypoint cat ghcr.io/${{ github.repository }}:latest /CONTAINER_VERSION)" | |
latest_version: | |
name: Check latest versions | |
runs-on: ubuntu-latest | |
outputs: | |
latestver: ${{ steps.latest-version.outputs.latestver }} | |
steps: | |
- name: Build image | |
uses: docker/build-push-action@v5 | |
with: | |
push: false | |
load: true | |
tags: testing:latest | |
- name: Get version from newly built image | |
id: latest-version | |
run: | | |
set -x | |
echo "::set-output name=latestver::$(docker run --rm --entrypoint cat testing:latest /CONTAINER_VERSION)" | |
display_versions: | |
name: Display versions | |
needs: [version_in_container, latest_version] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Display versions | |
run: | | |
echo "versions in ghcr.io/${{ github.repository }}:latest = ${{ needs.version_in_container.outputs.currver }}" | |
echo "versions in apt repository = ${{ needs.latest_version.outputs.latestver }}" | |
echo "will a deployment be triggered = ${{ needs.version_in_container.outputs.currver != needs.latest_version.outputs.latestver }}" | |
trigger_deploy: | |
name: Trigger deployment on new versions | |
needs: [version_in_container, latest_version] | |
if: ${{ needs.version_in_container.outputs.currver != needs.latest_version.outputs.latestver }} | |
runs-on: ubuntu-latest | |
env: | |
WORKFLOW_AUTH_TOKEN: ${{ secrets.GH_PAT_MIKENYE }} | |
WORKFLOW_REPO: ${{ github.repository }} | |
WORKFLOW_FILE: deploy.yml | |
WORKFLOW_REASON: "triggered via check_versions.yml in ${{ github.repository }}" | |
steps: | |
- name: Trigger ${{ env.WORKFLOW_FILE }} in ${{ env.WORKFLOW_REPO }} | |
run: | | |
echo "$WORKFLOW_AUTH_TOKEN" | gh auth login --with-token | |
gh workflow run --ref main --repo "$WORKFLOW_REPO" "$WORKFLOW_FILE" -f reason="$WORKFLOW_REASON" |