Announcement for "identity-platform-admin-ui_1-22.04_candidate" | release #16724
Workflow file for this run
This file contains hidden or 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: Announcements | |
run-name: Announcement for "${{ github.event_name == 'release' && github.event.release.name || github.event.registry_package.name }}" | ${{ github.event_name }} | |
on: | |
release: | |
types: [published] | |
registry_package: | |
types: [published, updated] | |
env: | |
NAME: ${{ github.event_name == 'release' && github.event.release.name || github.event.registry_package.name }} | |
jobs: | |
get-contacts: | |
name: Get contacts and image info | |
runs-on: ubuntu-22.04 | |
outputs: | |
mattermost-channels: ${{ steps.get-contacts.outputs.mattermost-channels }} | |
oci-img-name: ${{ steps.get-image-name.outputs.img-name }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Get image name | |
id: get-image-name | |
run: | | |
all_images=`ls oci/` | |
for img in $all_images | |
do | |
if [[ "${{ env.NAME }}" == "${img}_"* ]] || [[ "${{ env.NAME }}" == "oci-factory/${img}"* ]] | |
then | |
echo "Image name: ${img}" >> "$GITHUB_STEP_SUMMARY" | |
echo "img-name=${img}" >> "$GITHUB_OUTPUT" | |
fi | |
done | |
- name: Validate access to triggered image | |
uses: ./.github/actions/validate-actor | |
if: ${{ github.repository == 'canonical/oci-factory' }} | |
with: | |
admin-only: true | |
image-path: "oci/${{ steps.get-image-name.outputs.img-name }}" | |
github-token: ${{ secrets.ROCKSBOT_TOKEN }} | |
- name: Get contacts for ${{ steps.get-image-name.outputs.img-name }} | |
id: get-contacts | |
working-directory: oci/${{ steps.get-image-name.outputs.img-name }} | |
run: | | |
mm_channels=$(yq -r '.notify | ."mattermost-channels" | join(",")' < contacts.y*ml) | |
echo "mattermost-channels=${mm_channels}" >> "$GITHUB_OUTPUT" | |
release: | |
name: New release "${{ github.event.release.name }}" | |
needs: [get-contacts] | |
if: ${{ github.event_name == 'release' }} | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build release summary | |
id: get-summary | |
run: | | |
summary=":rocket: **${{ needs.get-contacts.outputs.oci-img-name }}** released to" | |
summary="${summary} [${{ env.NAME }}](${{ github.event.release.html_url }})" | |
echo "summary=${summary}" >> "$GITHUB_OUTPUT" | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- run: pip install -r src/notifications/requirements.txt | |
- name: Notify via Mattermost | |
env: | |
MM_BOT_TOKEN: ${{ secrets.MM_BOT_TOKEN }} | |
FINAL_STATUS: success | |
MM_SERVER: ${{ secrets.MM_SERVER }} | |
URL: ${{ github.event.release.html_url }} | |
SUMMARY: "${{ steps.get-summary.outputs.summary }}" | |
FOOTER: '' | |
TITLE: '' | |
run: | | |
for channel in $(echo ${{ needs.get-contacts.outputs.mattermost-channels }} | tr ',' ' ') | |
do | |
MM_CHANNEL_ID="${channel}" python3 -m src.notifications.mattermost_notifier send | |
done | |
ghcr_upload: | |
name: ${{ github.event.registry_package.name }} uploaded to GHCR | |
if: ${{ github.event_name == 'registry_package' && github.event.registry_package.package_version.container_metadata.tag.name != '' }} | |
needs: [get-contacts] | |
runs-on: ubuntu-22.04 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Build package summary | |
id: get-summary | |
run: | | |
summary=":package: **${{ needs.get-contacts.outputs.oci-img-name }}** built and uploaded to" | |
summary="${summary} GHCR on [${{ github.event.registry_package.package_version.package_url }}](${{ github.event.registry_package.package_version.html_url }})" | |
summary="${summary}\n"'```\n${{ github.event.registry_package.package_version.installation_command }}\n```' | |
echo "summary=${summary}" >> "$GITHUB_OUTPUT" | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.x" | |
- run: pip install -r src/notifications/requirements.txt | |
- name: Notify via Mattermost | |
env: | |
MM_BOT_TOKEN: ${{ secrets.MM_BOT_TOKEN }} | |
FINAL_STATUS: success | |
MM_SERVER: ${{ secrets.MM_SERVER }} | |
URL: ${{ github.event.registry_package.html_url }} | |
SUMMARY: '${{ steps.get-summary.outputs.summary }}' | |
FOOTER: '' | |
TITLE: '' | |
run: | | |
for channel in $(echo ${{ needs.get-contacts.outputs.mattermost-channels }} | tr ',' ' ') | |
do | |
MM_CHANNEL_ID="${channel}" python3 -m src.notifications.mattermost_notifier send | |
done |