mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-13 16:44:52 +08:00
release workflows
This commit is contained in:
parent
3e1da5b2f0
commit
ca1dffdabc
7 changed files with 23 additions and 248 deletions
46
.github/workflows/packages.yml
vendored
46
.github/workflows/packages.yml
vendored
|
@ -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
19
.github/workflows/pre-release.yml
vendored
Normal 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
|
32
.github/workflows/pull-request.yml
vendored
32
.github/workflows/pull-request.yml
vendored
|
@ -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"
|
|
||||||
|
|
||||||
|
|
50
.github/workflows/release-assets.yml
vendored
50
.github/workflows/release-assets.yml
vendored
|
@ -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 }}
|
|
39
.github/workflows/release-branch.yml
vendored
39
.github/workflows/release-branch.yml
vendored
|
@ -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 }}
|
|
||||||
|
|
44
.github/workflows/release.yml
vendored
44
.github/workflows/release.yml
vendored
|
@ -1,6 +1,6 @@
|
||||||
# creates a release from develop
|
# creates a release from develop
|
||||||
# creates release branch, generates release assets, publishes docker image and copies release.md to release
|
# 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
|
name: Release
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
@ -9,47 +9,11 @@ on:
|
||||||
version:
|
version:
|
||||||
description: "new version number"
|
description: "new version number"
|
||||||
required: true
|
required: true
|
||||||
prerelease:
|
|
||||||
required: true
|
|
||||||
type: boolean
|
|
||||||
description: Is this a pre-release
|
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
|
|
||||||
release-branch:
|
release:
|
||||||
uses: ./.github/workflows/release-branch.yml
|
uses: gravitl/devops/.github/workflows/netmakerRelease.yml@master
|
||||||
with:
|
with:
|
||||||
version: ${{ github.event.inputs.version }}
|
version: ${{ 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 }}
|
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
|
|
41
.github/workflows/upgraderelease.yml
vendored
41
.github/workflows/upgraderelease.yml
vendored
|
@ -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 }}
|
|
Loading…
Add table
Reference in a new issue