This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
dagger/.github/workflows/auto-release.yml
Gerhard Lazu 3f5f4af402
Restore auto-release time to the original value
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>
2022-02-01 16:18:17 +00:00

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