mirror of
https://github.com/fleetdm/fleet
synced 2026-05-23 08:58:41 +00:00
Adds a minimum supported node and yarn version to the project. Currently if you are on an unsupported version of node or yarn, there is no messaging telling you that is the issue. The build just fails, and you are left to figure out it's because of your node version. With this change, it will be much clearer why any of the node required commands (e.g. make deps, make generate-dev, make lint-js, make test-js) are not working, and it will tell you exactly which minimum version of node or yarn you need. **After the console error is clear about using an unsupported node version**  - [x] Changes file added for user-visible changes in `changes/` or `orbit/changes/`. - [x] Manual QA for all new/changed functionality
87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
name: goreleaser
|
|
|
|
on:
|
|
push:
|
|
tags:
|
|
- "fleet-*"
|
|
|
|
# This allows a subsequently queued workflow run to interrupt previous runs
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id}}
|
|
cancel-in-progress: true
|
|
|
|
defaults:
|
|
run:
|
|
# fail-fast using bash -eo pipefail. See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#exit-codes-and-error-action-preference
|
|
shell: bash
|
|
|
|
permissions:
|
|
contents: read
|
|
|
|
jobs:
|
|
goreleaser:
|
|
runs-on: ubuntu-20.04
|
|
environment: Docker Hub
|
|
permissions:
|
|
contents: write
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3
|
|
with:
|
|
fetch-depth: 0 # Needed for goreleaser
|
|
|
|
- name: Login to Docker Hub
|
|
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
|
|
with:
|
|
username: ${{ secrets.DOCKERHUB_USERNAME }}
|
|
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@93397bea11091df50f3d7e59dc26a7711a8bcfbe # v4.1.0
|
|
with:
|
|
go-version: ${{ vars.GO_VERSION }}
|
|
|
|
# Set the Node.js version
|
|
- name: Set up Node.js ${{ vars.NODE_VERSION }}
|
|
uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3.8.1
|
|
with:
|
|
node-version: ${{ vars.NODE_VERSION }}
|
|
|
|
- name: Install JS Dependencies
|
|
run: make deps-js
|
|
|
|
- name: Install Go Dependencies
|
|
run: make deps-go
|
|
|
|
- name: Run GoReleaser
|
|
uses: goreleaser/goreleaser-action@f82d6c1c344bcacabba2c841718984797f664a6b
|
|
with:
|
|
distribution: goreleaser-pro
|
|
version: latest
|
|
args: release --rm-dist -f .goreleaser.yml
|
|
env:
|
|
GORELEASER_KEY: ${{ secrets.GORELEASER_KEY }}
|
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
|
|
- name: Get tag
|
|
run: |
|
|
echo "TAG=$(git describe --tags | sed -e "s/^fleet-//")" >> $GITHUB_OUTPUT
|
|
id: docker
|
|
|
|
- name: List tags for push
|
|
run: |
|
|
echo "The following TAGs are to be pushed: ${{ steps.docker.outputs.TAG }}"
|
|
|
|
- name: Login to quay.io
|
|
uses: docker/login-action@f4ef78c080cd8ba55a85445d5b36e214a81df20a
|
|
with:
|
|
registry: quay.io
|
|
username: fleetdm+fleetreleaser
|
|
password: ${{ secrets.QUAY_REGISTRY_PASSWORD }}
|
|
|
|
- name: Tag and push to quay.io
|
|
run: |
|
|
for TAG in ${{ steps.docker.outputs.TAG }}; do
|
|
docker tag fleetdm/fleet:${TAG} quay.io/fleetdm/fleet:${TAG}
|
|
docker push quay.io/fleetdm/fleet:${TAG}
|
|
done
|