release workflows

This commit is contained in:
Matthew R Kasun 2023-05-08 10:09:39 -04:00
parent 3e1da5b2f0
commit ca1dffdabc
7 changed files with 23 additions and 248 deletions

View file

@ -1,46 +0,0 @@
name: Build linux packages
on:
workflow_call:
inputs:
version:
required: true
type: string
workflow_dispatch:
inputs:
version:
description: "netmaker version"
required: true
release:
types: [released]
jobs:
packages:
runs-on: ubuntu-latest
steps:
- name: setup ssh
run: |
mkdir -p ~/.ssh/
echo "$SSH_KEY" > ~/.ssh/id_devops
chmod 600 ~/.ssh/id_devops
cat >>~/.ssh/config <<END
Host *.clustercat.com
User root
IdentityFile ~/.ssh/id_devops
StrictHostKeyChecking no
END
env:
SSH_KEY: ${{ secrets.TESTING_SSH_KEY }}
- name: set version
run: |
if [[ -n "${{ github.event.inputs.version }}" ]]; then
# remove everything but digits and . for package (deb, rpm, etc) versions
VERSION=$(echo ${{ github.event.inputs.version }} | tr -cd '[:digit:].')
else
VERSION=$(echo ${{ github.ref.name }} | tr -cd '[:digit:].')
fi
echo "VERSION=${VERSION}" >> $GITHUB_ENV
echo ${VERSION}
- name: apt/rpm
run: |
ssh fileserver.clustercat.com "cd packages/nmcli; export VERSION=${{ ENV.version }}; export REVISION=0; ./buildall.sh "

19
.github/workflows/pre-release.yml vendored Normal file
View file

@ -0,0 +1,19 @@
# creates a release from develop
# creates release branch, generates release assets, publishes docker image and copies release.md to release
# linux packages are generated and a PR from release branch to master is created
name: Release
on:
workflow_dispatch:
inputs:
version:
description: "new version number"
required: true
jobs:
release:
uses: gravitl/devops/.github/workflows/netmakerPrerelease.yml@master
with:
version: ${{ inputs.version }}
secrets: inherit

View file

@ -1,32 +0,0 @@
# creates a PR from release branch to master
name: Create Release PR to master
on:
workflow_call:
inputs:
version:
required: true
type: string
workflow_dispatch:
inputs:
version:
description: "netmaker version"
required: true
release:
types: [released]
jobs:
pr-to-main:
runs-on: ubuntu-latest
steps:
- name: create pr
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh api --method POST \
-H 'Accept: application/vnd.github+json' -H 'X-GitHub-Api-Version: 2022-11-28' \
/repos/${{ github.repository }}/pulls \
-f title='${{ github.event.inputs.version }}' \
-f head='release_${{ github.event.inputs.version }}' \
-f base="master"

View file

@ -1,50 +0,0 @@
# generates release assets and uploads to release
name: Upload Release Assets
on:
workflow_call:
inputs:
version:
required: true
type: string
prerelease:
required: true
type: boolean
workflow_dispatch:
inputs:
version:
description: "netmaker version"
required: true
prerelease:
required: true
type: boolean
description: "prerelease"
jobs:
release-assets:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
ref: release_${{ github.event.inputs.version}}
fetch-depth: 0
- name: Get Tags
run: |
git fetch --force --tags
- name: Setup go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: GoReleaser (full release)
if: ${{ github.event.inputs.prerelease == 'false'}}
uses: goreleaser/goreleaser-action@v4
with:
args: release --clean --release-notes release.md
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: GoReleaser (prerelease)
if: ${{ github.event.inputs.prerelease == 'false'}}
uses: goreleaser/goreleaser-action@v4
with:
args: release --clean --release-notes release.md -f .goreleaser.prerelease.yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

View file

@ -1,39 +0,0 @@
# creates new branch (release_{{ version }} with tag {{ version }} from develop
# will fail if branch or tag already exists on github
name: Create Release Branch
on:
workflow_call:
inputs:
version:
required: true
type: string
workflow_dispatch:
inputs:
version:
description: "netmaker version"
required: true
jobs:
release-branch:
runs-on: ubuntu-latest
steps:
- name: checkout develop
uses: actions/checkout@v3
with:
ref: develop
- name: setup go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: setup git
run: |
git config user.name "Github Actions"
git config user.emaail "info@netmaker.io"
- name: create release Branch
run: |
git switch -c release_${{ github.event.inputs.version }}
git tag -f ${{ github.event.inputs.version }}
#push branch
git push origin release_${{ github.event.inputs.version }}
#push tag
git push origin ${{ github.event.inputs.version }}

View file

@ -1,6 +1,6 @@
# creates a release from develop
# creates release branch, generates release assets, publishes docker image and copies release.md to release
# if formal release, linux packages are generated and a PR from release branch to master is created
# linux packages are generated and a PR from release branch to master is created
name: Release
on:
@ -9,47 +9,11 @@ on:
version:
description: "new version number"
required: true
prerelease:
required: true
type: boolean
description: Is this a pre-release
jobs:
release-branch:
uses: ./.github/workflows/release-branch.yml
release:
uses: gravitl/devops/.github/workflows/netmakerRelease.yml@master
with:
version: ${{ github.event.inputs.version }}
secrets: inherit
release-assets:
needs: release-branch
uses: ./.github/workflows/release-assets.yml
with:
version: ${{ github.event.inputs.version }}
prerelease: ${{ github.event.inputs.prerelease == 'true' }}
secrets: inherit
docker:
needs: release-branch
uses: ./.github/workflows/publish-docker.yml
with:
tag: ${{ github.event.inputs.version }}
secrets: inherit
packages:
if: ${{ github.event.inputs.prerelease == 'false' }}
needs: release-branch
uses: ./.github/workflows/packages.yml
with:
version: ${{ github.event.inputs.version }}
secrets: inherit
pull-request:
if: ${{ github.event.inputs.prerelease == 'false' }}
needs: release-branch
uses: ./.github/workflows/pull-request.yml
with:
version: ${{ github.event.inputs.version }}
version: ${{ inputs.version }}
secrets: inherit

View file

@ -1,41 +0,0 @@
name: UpgradeRelease
on:
workflow_dispatch:
inputs:
version:
description: "release/version to update"
required: true
jobs:
update:
runs-on: ubuntu-latest
steps:
- name: checkout
uses: actions/checkout@v3
with:
ref: release_${{ github.event.inputs.version }}
fetch-depth: 0
- run: |
git fetch --force --tags
- name: Setup go
uses: actions/setup-go@v4
with:
go-version: 1.19
- name: goreleaser
uses: goreleaser/goreleaser-action@v4
with:
args: release --clean --release-notes release.md -f .goreleaser.update.yaml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
packages:
uses: ./.github/workflows/packages.yml
with:
version: ${{ github.event.inputs.version }}
pull-request:
uses: ./.github/workflows/pull-request.yml
with:
version: ${{ github.event.inputs.version }}