Remove dependency on deprecated release actions (#193)

* Update to the latest available actions

* Remove dependency on deprecated release actions

* Add release workflow fixes from testing
This commit is contained in:
Josh Gross
2024-11-06 11:41:09 -05:00
committed by GitHub
parent 27bae0b2b7
commit 5e805a0546

View File

@@ -1,74 +1,70 @@
name: CD - Release new version name: CD - Release new version
on: on:
workflow_dispatch: workflow_dispatch:
permissions:
contents: write
jobs: jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: npm install
name: Install dependencies - name: Install dependencies
- run: npm run bootstrap run: npm install
name: Bootstrap the packages
- run: npm run build-all - name: Bootstrap the packages
name: Build packages run: npm run bootstrap
- name: Build packages
run: npm run build-all
- uses: actions/github-script@v7 - uses: actions/github-script@v7
id: releaseVersion id: releaseVersion
with: with:
result-encoding: string
script: | script: |
const fs = require('fs'); const fs = require('fs');
const hookVersion = require('./package.json').version return require('./package.json').version
core.setOutput('version', hookVersion);
- name: Zip up releases - name: Zip up releases
run: | run: |
zip -r -j actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip packages/docker/dist zip -r -j actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip packages/docker/dist
zip -r -j actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip packages/k8s/dist zip -r -j actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip packages/k8s/dist
- name: Calculate SHA - name: Calculate SHA
id: sha id: sha
shell: bash shell: bash
run: | run: |
sha_docker=$(sha256sum actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip | awk '{print $1}') sha_docker=$(sha256sum actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip | awk '{print $1}')
echo "Docker SHA: $sha_docker" echo "Docker SHA: $sha_docker"
echo "docker-sha=$sha_docker" >> $GITHUB_OUTPUT echo "docker-sha=$sha_docker" >> $GITHUB_OUTPUT
sha_k8s=$(sha256sum actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip | awk '{print $1}') sha_k8s=$(sha256sum actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip | awk '{print $1}')
echo "K8s SHA: $sha_k8s" echo "K8s SHA: $sha_k8s"
echo "k8s-sha=$sha_k8s" >> $GITHUB_OUTPUT echo "k8s-sha=$sha_k8s" >> $GITHUB_OUTPUT
- name: replace SHA
- name: Create release notes
id: releaseNotes id: releaseNotes
uses: actions/github-script@v7 uses: actions/github-script@v7
with: with:
script: | script: |
const fs = require('fs'); const fs = require('fs');
var releaseNotes = fs.readFileSync('${{ github.workspace }}/releaseNotes.md', 'utf8').replace(/<HOOK_VERSION>/g, '${{ steps.releaseVersion.outputs.version }}') var releaseNotes = fs.readFileSync('${{ github.workspace }}/releaseNotes.md', 'utf8').replace(/<HOOK_VERSION>/g, '${{ steps.releaseVersion.outputs.result }}')
releaseNotes = releaseNotes.replace(/<DOCKER_SHA>/g, '${{ steps.sha.outputs.docker-sha }}') releaseNotes = releaseNotes.replace(/<DOCKER_SHA>/g, '${{ steps.sha.outputs.docker-sha }}')
releaseNotes = releaseNotes.replace(/<K8S_SHA>/g, '${{ steps.sha.outputs.k8s-sha }}') releaseNotes = releaseNotes.replace(/<K8S_SHA>/g, '${{ steps.sha.outputs.k8s-sha }}')
console.log(releaseNotes) console.log(releaseNotes)
core.setOutput('note', releaseNotes); fs.writeFileSync('${{ github.workspace }}/finalReleaseNotes.md', releaseNotes);
- uses: actions/create-release@v1
id: createRelease - name: Create ${{ steps.releaseVersion.outputs.result }} Hook Release
name: Create ${{ steps.releaseVersion.outputs.version }} Hook Release
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: run: |
tag_name: "v${{ steps.releaseVersion.outputs.version }}" gh release create v${{ steps.releaseVersion.outputs.result }} \
release_name: "v${{ steps.releaseVersion.outputs.version }}" --title "v${{ steps.releaseVersion.outputs.result }}" \
body: | --repo ${{ github.repository }} \
${{ steps.releaseNotes.outputs.note }} --notes-file ${{ github.workspace }}/finalReleaseNotes.md \
- name: Upload K8s hooks --latest \
uses: actions/upload-release-asset@v1 ${{ github.workspace }}/actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.result }}.zip \
env: ${{ github.workspace }}/actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.result }}.zip
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.createRelease.outputs.upload_url }}
asset_path: ${{ github.workspace }}/actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip
asset_name: actions-runner-hooks-k8s-${{ steps.releaseVersion.outputs.version }}.zip
asset_content_type: application/octet-stream
- name: Upload docker hooks
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.createRelease.outputs.upload_url }}
asset_path: ${{ github.workspace }}/actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip
asset_name: actions-runner-hooks-docker-${{ steps.releaseVersion.outputs.version }}.zip
asset_content_type: application/octet-stream