Skip to content

v5.63.0

v5.63.0 #11

Workflow file for this run

name: Release
on:
workflow_dispatch: null
release:
types: [ published ]
jobs:
notify:
needs: pypi-release
if: github.repository == 'linode/linode-cli'
runs-on: ubuntu-latest
steps:
- name: Notify Slack - Main Message
id: main_message
uses: slackapi/slack-github-action@v2
with:
method: chat.postMessage
token: ${{ secrets.SLACK_BOT_TOKEN }}
payload: |
channel: ${{ secrets.CLI_SLACK_CHANNEL_ID }}
blocks:
- type: section
text:
type: mrkdwn
text: "*New Release Published: _linode-cli_ <${{ github.event.release.html_url }}|${{ github.event.release.tag_name }}> is now live!* :tada:"
oci_publish:
name: Build and publish the OCI image
runs-on: ubuntu-latest
steps:
- name: Clone Repository
uses: actions/checkout@v5
- name: setup python 3
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install deps
run: make requirements
- name: Set up QEMU
uses: docker/setup-qemu-action@29109295f81e9208d7d86ff1c6c12d2833863392 # pin@v3.6.0
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@e468171a9de216ec08956ac3ada2f0791b6bd435 # pin@v3.11.1
- name: Login to Docker Hub
uses: docker/login-action@5e57cd118135c172c3672efd75eb46360885c0ef # pin@v3.6.0
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# This is necessary as we want to ensure that version tags
# are properly formatted before passing them into the
# DockerFile.
- uses: actions/github-script@v8
id: cli_version
with:
script: |
let tag_name = '${{ github.event.release.tag_name }}';
if (tag_name.startsWith("v")) {
tag_name = tag_name.slice(1);
}
return tag_name;
result-encoding: string
- name: Build and push to DockerHub
uses: docker/build-push-action@263435318d21b8e681c14492fe198d362a7d2c83 # pin@v6.18.0
with:
context: .
file: Dockerfile
platforms: linux/amd64,linux/arm64
push: true
tags: linode/cli:${{ steps.cli_version.outputs.result }},linode/cli:latest
build-args: |
linode_cli_version=${{ steps.cli_version.outputs.result }}
github_token=${{ secrets.GITHUB_TOKEN }}
pypi-release:
permissions:
# IMPORTANT: this permission is mandatory for trusted publishing
id-token: write
runs-on: ubuntu-latest
environment: pypi-release
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Setup Python
uses: actions/setup-python@v6
with:
python-version: '3.x'
- name: Install Python deps
run: pip install wheel
- name: Install package requirements
run: make requirements
- name: Build the package
run: make build
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
LINODE_CLI_VERSION: ${{ github.event.release.tag_name }}
- name: Publish the release artifacts to PyPI
uses: pypa/gh-action-pypi-publish@ed0c53931b1dc9bd32cbe73a98c7f6766f8a527e # pin@release/v1.13.0