mirror of
https://github.com/gravitl/netmaker.git
synced 2025-09-09 14:46:36 +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 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
|
||||
|
|
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