Skip to content

Create 1.0.1 release from main branch #2

Create 1.0.1 release from main branch

Create 1.0.1 release from main branch #2

Workflow file for this run

name: Create Release
run-name: Create `${{ inputs.version }}` release from `${{ github.ref_name }}` branch
on:
workflow_dispatch:
inputs:
version:
description: The version to tag and release
required: true
jobs:
release:
name: Create Release
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
token: ${{ secrets.REPO_DISPATCH_TOKEN }}
- name: Set variables for Docker images
run: |
oldhash=${{ hashFiles('Dockerfile', 'package.json', 'package-lock.json', 'scripts/*') }}
registry='ghcr.io'
imageprefix="${registry}/${GITHUB_REPOSITORY}/"
imagename='az-nodejs-ephemeral'
imagestem="${imageprefix}${imagename}:"
echo "AZ_DOCKER_REGISTRY=${registry}" >> ${GITHUB_ENV}
echo "AZ_OLD_HASH=${oldhash}" >> ${GITHUB_ENV}
echo "AZ_IMAGE_STEM=${imagestem}" >> ${GITHUB_ENV}
echo "AZ_ICONS_SOURCE_DIR=/az-icons-src" >> ${GITHUB_ENV}
echo "AZ_ICONS_FROZEN_DIR=/azbuild/az-icons" >> ${GITHUB_ENV}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Docker authentication
run: |
docker login "$AZ_DOCKER_REGISTRY" -u "$GITHUB_ACTOR" -p ${{ secrets.GITHUB_TOKEN }}
- name: Unconditionally rebuild and save the Docker image
run: |
workingtitle=$(docker build -q . )
tempname="old${AZ_OLD_HASH}"
docker run --name "$tempname" "$workingtitle" true
docker cp -a "${tempname}:${AZ_ICONS_FROZEN_DIR}/." .
docker rm "$tempname"
lockhash=${{ hashFiles('Dockerfile', 'package.json', 'package-lock.json', 'scripts/*') }}
ephemeral="${AZ_IMAGE_STEM}${lockhash}"
docker tag "$workingtitle" "$ephemeral"
docker push "$ephemeral"
echo "AZ_EPHEMERAL_IMAGE=${ephemeral}" >> ${GITHUB_ENV}
- name: Build variables
run: |
echo "AZ_VERSION=${{ github.event.inputs.version }}" >> ${GITHUB_ENV}
- name: Update version
run: |
sudo touch config.yml
sudo find . -path "./.git" -prune -o -exec chown 1000:1000 {} \;
sudo chown 1000:1000 .
git config --global user.email "${GITHUB_ACTOR}@users.noreply.github.com"
git config --global user.name "${GITHUB_ACTOR}"
docker run --rm -e "AZ_RELEASE_VERSION=${AZ_VERSION}" -v $(pwd):"${AZ_ICONS_SOURCE_DIR}" "$AZ_EPHEMERAL_IMAGE" create-release
git add dist package.json package-lock.json
git commit -m '${{ github.event.inputs.version }}'
git push
echo "RELEASE_SHA=$(git rev-parse HEAD)" >> ${GITHUB_ENV}
- name: Create Release
id: create_release
uses: softprops/action-gh-release@v1
with:
target_commitish: ${{ env.RELEASE_SHA }}
token: ${{ secrets.GITHUB_TOKEN }}
tag_name: "v${{ env.AZ_VERSION }}"
name: "v${{ env.AZ_VERSION }}"
draft: false
prerelease: false
body: |
Release v${{ env.AZ_VERSION }}
- name: Save new SHA to file
run: |
echo "{\"sha\": \"$(git rev-parse HEAD)\"}" > ${{ runner.temp }}/variables.json
- name: Upload variables
uses: actions/upload-artifact@v4
with:
name: variables-json-artifact
path: ${{ runner.temp }}
dispatch:
needs: release
strategy:
matrix:
repo:
- az-digital/az-icons
- az-digital/az-icons-packagist
runs-on: ubuntu-latest
steps:
- name: Download variables
uses: actions/download-artifact@v4
with:
name: variables-json-artifact
path: ${{ runner.temp }}
- name: Update environment variables
run: |
variablesfile=${{ runner.temp }}/variables.json
echo "RELEASE_SHA=$(cat ${variablesfile} | jq -r '.sha' )" >> ${GITHUB_ENV}
echo "BRANCH_NAME=${GITHUB_REF_NAME}" >> ${GITHUB_ENV}
- name: Notify dependencies
uses: peter-evans/repository-dispatch@v3
with:
token: ${{ secrets.REPO_DISPATCH_TOKEN }}
repository: ${{ matrix.repo }}
event-type: az_icons_release
client-payload: '{"version": "${{ github.event.inputs.version }}", "ref": "${{ env.RELEASE_SHA }}", "sha": "${{ env.RELEASE_SHA }}", "branch": "${{env.BRANCH_NAME}}"}'