-
Notifications
You must be signed in to change notification settings - Fork 19
94 lines (89 loc) · 3.56 KB
/
make-release.yaml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
name: Make release
# Required secrets:
# GCS_CREDS - Credentials to Google Cloud Storage for binary and chart releases
# GH_PAT - GitHub username with personal access token with permissions to make commits to repositories, must be in format "<username>:<PAT>"
on:
workflow_dispatch:
inputs:
version:
description: Version in SemVer (e.g. '0.5.0')
required: true
dashboard_image_tag:
description: Tag of the Dashboard image used for a given release
required: true
jobs:
make-release:
name: Make release
runs-on: ubuntu-latest
environment: Release
permissions:
contents: write
packages: write
pull-requests: read
issues: read
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
persist-credentials: false
- name: Setup Git credentials
# Replacing the GH Action token with PAT is required to trigger the branch-build workflow on a commit:
# https://docs.github.com/en/actions/reference/events-that-trigger-workflows#triggering-new-workflows-using-a-personal-access-token
run: |
git remote remove origin
git remote add origin https://${{secrets.GH_PAT}}@github.com/${{github.repository}}.git
git config --global user.email "contact@capact.io"
git config --global user.name "Capact Bot"
- name: Setup environment
run: |
. ./hack/ci/setup-env.sh
- name: Set up Go
uses: actions/setup-go@v2
with:
go-version: ${{env.GO_VERSION}}
- name: Set up GoReleaser
run: go install github.com/goreleaser/goreleaser@v1.1.0
- name: Push release commits and tag
env:
RELEASE_VERSION: "${{ github.event.inputs.version }}"
DASHBOARD_IMAGE_TAG: "${{ github.event.inputs.dashboard_image_tag }}"
run: ./hack/make-release.sh
- name: Log into registry
run: echo "${{ secrets.GITHUB_TOKEN }}" | docker login ghcr.io -u ${{ github.actor }} --password-stdin
- name: Install upx 3.96
run: |
wget https://github.com/upx/upx/releases/download/v3.96/upx-3.96-amd64_linux.tar.xz
tar -xf upx-3.96-amd64_linux.tar.xz
mv ./upx-3.96-amd64_linux/upx /usr/local/bin/upx
upx -V
- id: auth
name: Authenticate with Google Cloud platform
uses: google-github-actions/auth@v0.5.0
with:
create_credentials_file: true
cleanup_credentials: true
credentials_json: ${{ secrets.GCS_CREDS }}
- name: Ignore credentials
env:
GCP_CREDS_FILEPATH: ${{ steps.auth.outputs.credentials_file_path }}
run: |
echo "Preventing pushing to the origin..."
git remote set-url --push origin no_push
GCP_CREDS_FILENAME=$(basename $GCP_CREDS_FILEPATH)
echo "Adding ${GCP_CREDS_FILENAME} to local .gitignore..."
echo "${GCP_CREDS_FILENAME}" >> .gitignore
echo "Committing the change..."
git add .gitignore
git commit -m "Ignore credentials"
- name: Set up Cloud SDK
uses: google-github-actions/setup-gcloud@v0.6.0
- name: Run GoReleaser
env:
GITHUB_TOKEN: ${{ secrets.RELEASE_GITHUB_TOKEN }}
run: make release-binaries
- name: Generate release notes
run: |
npm install -g github-release-notes@~0.17.3
gren release -d -T "${{ secrets.GITHUB_TOKEN }}" --tags "v${{ github.event.inputs.version }}" --override
- name: Release Helm charts
run: make release-charts