3f5f4af402
This was set temporarily 4h later than originally intended so that it would go through the day that we expected it to. Now that we know it worked, let's restore it back to the time that matches morning in SFO & early evening in Europe. I see no reason to create extra PR work, shipping it straight into main. FTR, this changes a single value, 21 -> 17, and a few comments. Signed-off-by: Gerhard Lazu <gerhard@lazu.co.uk>
95 lines
3.6 KiB
YAML
95 lines
3.6 KiB
YAML
name: "Auto Release"
|
|
|
|
# Only a single job with this concurrency can run at any given time
|
|
concurrency: release
|
|
|
|
on:
|
|
# This runs on a schedule by default:
|
|
schedule:
|
|
# https://crontab.guru/#6_17_*_*_2
|
|
# Every Tuesday at 5:06pm UTC & 9:06am US West Coast.
|
|
# GitHub Actions defaults to UTC:
|
|
- cron: '6 17 * * 2'
|
|
# There is high load on GitHub Actions at the top of the hour:
|
|
#
|
|
# Note: The schedule event can be delayed during periods of high loads of
|
|
# GitHub Actions workflow runs. High load times include the start of every
|
|
# hour. To decrease the chance of delay, schedule your workflow to run at a
|
|
# different time of the hour.
|
|
#
|
|
# So we run these at a special time, 9:06. Ask @gerhard about it.
|
|
|
|
# And it also supports manual triggering:
|
|
# https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onworkflow_dispatchinputs
|
|
workflow_dispatch:
|
|
inputs:
|
|
release_type:
|
|
description: 'major|minor|patch|release|prerel'
|
|
default: 'prerel alpha..'
|
|
required: true
|
|
release_version:
|
|
description: 'Optional release version, e.g. 0.2.0'
|
|
required: false
|
|
|
|
jobs:
|
|
bump_version-tag-release:
|
|
# ⚠️ If this changes, remember to update the running-workflow-name property
|
|
name: "Bump version, tag & release"
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: "Check out"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: "Ensure that all other checks have succeeded"
|
|
# https://github.com/lewagon/wait-on-check-action
|
|
uses: lewagon/wait-on-check-action@v1.0.0
|
|
with:
|
|
ref: ${{ github.ref }}
|
|
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
|
wait-interval: 10 # polls the GitHub API every 10 every seconds
|
|
running-workflow-name: "Bump version, tag & release"
|
|
allowed-conclusions: success
|
|
|
|
- name: "Create next release tag"
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
SEMVER_BUMP: ${{ github.event.inputs.release_type }}
|
|
run: |
|
|
if [[ -n "${{ github.event.inputs.release_version }}" ]]
|
|
then
|
|
next_release_version="v${{ github.event.inputs.release_version }}"
|
|
else
|
|
previous_release_version="$(gh api /repos/:owner/:repo/releases --jq '.[0].tag_name')"
|
|
echo "PREVIOUS RELEASE VERSION: $previous_release_version"
|
|
# Rather than installing it on every run, we commit it locally so that we have everything we need locally
|
|
# wget https://raw.githubusercontent.com/fsaintjacques/semver-tool/3.3.0/src/semver
|
|
# https://github.com/fsaintjacques/semver-tool
|
|
next_release_version="v$(./semver bump ${SEMVER_BUMP:=prerel alpha..} $previous_release_version)"
|
|
fi
|
|
echo "NEXT RELEASE VERSION: $next_release_version"
|
|
gh api -X POST /repos/:owner/:repo/git/refs \
|
|
--field ref="refs/tags/$next_release_version" \
|
|
--field sha="$GITHUB_SHA"
|
|
|
|
- name: "Fetch new tag"
|
|
uses: actions/checkout@v2
|
|
with:
|
|
fetch-depth: 0
|
|
|
|
- name: "Install Go"
|
|
uses: actions/setup-go@v2
|
|
with:
|
|
go-version: 1.16
|
|
|
|
- name: "Release"
|
|
uses: goreleaser/goreleaser-action@v2
|
|
with:
|
|
args: release --rm-dist --debug
|
|
env:
|
|
GITHUB_TOKEN: ${{ secrets.DAGGERCI_TOKEN }}
|
|
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
|
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
|
AWS_REGION: us-east-1
|