Merge pull request #2276 from gravitl/NET-110

release workflows
This commit is contained in:
Alex Feiszli 2023-05-10 17:40:44 -04:00 committed by GitHub
commit a25f23f6fb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
8 changed files with 25 additions and 250 deletions

View file

@ -23,7 +23,7 @@ jobs:
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
color: "#42f545"
username: "GitHub Bot"
message: "${{ github.respository }}: ${{ github.event.workflow_run.name }} was successful"
message: "${{ github.repository }}: ${{ github.event.workflow_run.name }} was successful"
file: ./results/results.log
- name: discord server message
uses: appleboy/discord-action@master
@ -62,7 +62,7 @@ jobs:
webhook_token: ${{ secrets.DISCORD_WEBHOOK_TOKEN }}
color: "#990000"
username: "GitHub Bot"
message: "${{ github.respository }}: ${{ github.event.workflow_run.name }} failed"
message: "${{ github.repository }}: ${{ github.event.workflow_run.name }} failed"
file: ./results/results.log
- name: discord server message
uses: appleboy/discord-action@master

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 }}