Skip to content

Merge branch 'main' of https://github.com/hookdeck/hookdeck-cli into … #69

Merge branch 'main' of https://github.com/hookdeck/hookdeck-cli into …

Merge branch 'main' of https://github.com/hookdeck/hookdeck-cli into … #69

Workflow file for this run

name: release
on:
push:
tags:
- "v*"
jobs:
build-mac:
runs-on: macos-latest
steps:
- name: Code checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.18.1
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
with:
version: latest
args: release -f .goreleaser/mac.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
build-linux:
runs-on: ubuntu-latest
env:
# https://goreleaser.com/customization/docker_manifest/
DOCKER_CLI_EXPERIMENTAL: "enabled"
steps:
- name: Code checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Docker Login
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Set up Docker QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.18.1
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v4
with:
version: latest
args: release -f .goreleaser/linux.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
build-windows:
runs-on: windows-latest
steps:
- name: Code checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.18.1
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
version: latest
args: release -f .goreleaser/windows.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
build-windows-npm:
runs-on: windows-latest
steps:
- name: Code checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: 1.18.1
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v5
with:
version: latest
args: release -f .goreleaser/windows-npm.yml --clean
env:
GITHUB_TOKEN: ${{ secrets.GORELEASER_GITHUB_TOKEN }}
publish-npm:
runs-on: ubuntu-latest
needs: [build-windows-npm, build-linux, build-mac]
steps:
- uses: actions/checkout@v4
with:
# With permission to push to a protected branch
token: ${{ secrets.READ_WRITE_PAT }}
fetch-depth: 0 # Required to find branches for a tag
- name: Determine release branch
id: get_branch
run: |
# Find the branch that contains the tag.
# Prefers 'main', then 'master', then the first branch found.
BRANCHES=$(git branch -r --contains ${{ github.ref_name }} | sed 's/ *origin\///' | grep -v HEAD)
if echo "$BRANCHES" | grep -q -w "main"; then
RELEASE_BRANCH="main"
elif echo "$BRANCHES" | grep -q -w "master"; then
RELEASE_BRANCH="master"
else
RELEASE_BRANCH=$(echo "$BRANCHES" | head -n 1)
fi
echo "RELEASE_BRANCH=${RELEASE_BRANCH}" >> $GITHUB_OUTPUT
echo "Determined release branch for commit: ${RELEASE_BRANCH}"
- name: Checkout release branch
run: git checkout ${{ steps.get_branch.outputs.RELEASE_BRANCH }}
- uses: actions/setup-node@v4
with:
node-version: "20.x"
registry-url: "https://registry.npmjs.org"
- name: Get GitHub tag version
# Store the version, stripping any v-prefix
id: tag-version
run: |
TAG_VERSION=${GITHUB_REF_NAME#v}
echo Version: $TAG_VERSION
echo "TAG_VERSION=$TAG_VERSION" >> $GITHUB_OUTPUT
- name: Update package.json version
uses: jossef/action-set-json-field@v2.1
with:
file: package.json
field: version
value: ${{ steps.tag-version.outputs.TAG_VERSION }}
- name: Commit package.json version
uses: EndBug/add-and-commit@v9
with:
default_author: github_actions
message: 'Update package.json version to ${{ steps.tag-version.outputs.TAG_VERSION }}'
add: 'package.json'
- run: npm ci
- name: Determine npm tag for pre-releases
id: npm_tag
run: |
TAG_VERSION="${{ steps.tag-version.outputs.TAG_VERSION }}"
NPM_TAG="latest"
if [[ "$TAG_VERSION" == *-* ]]; then
NPM_TAG=$(echo "$TAG_VERSION" | cut -d'-' -f2 | cut -d'.' -f1)
fi
echo "tag=${NPM_TAG}" >> $GITHUB_OUTPUT
echo "npm tag: ${NPM_TAG}"
- run: npm publish --tag ${{ steps.npm_tag.outputs.tag }}
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}