Skip to content

refactor: general cleanup (#536) #1996

refactor: general cleanup (#536)

refactor: general cleanup (#536) #1996

Workflow file for this run

name: build
on:
push:
branches:
- master
tags:
- 'v*.*.*'
pull_request:
branches:
- '*'
jobs:
build:
# You must use a Linux environment when using service containers or container jobs
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Go
uses: actions/setup-go@v4
with:
go-version-file: 'go.mod'
- name: Lint check
run: make install-linter lint
- name: Vet check
run: make vet
- name: API tests
run: make go-tfe-tests
# chromium breaks browser-based tests:
# https://github.com/chromedp/chromedp/issues/1325#issuecomment-1606114185
- name: Remove chromium
run: |
sudo rm /usr/bin/chromium
sudo rm /usr/bin/chromium-browser
- name: Tests
env:
GOOGLE_CREDENTIALS: ${{ secrets.GOOGLE_CREDENTIALS }}
run: make test
- name: Archive browser screenshots
if: always()
uses: actions/upload-artifact@v3
with:
name: e2e-screenshots
path: internal/integration/screenshots/**/*.png
release-please:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/master'
outputs:
release_created: ${{ steps.release-please.outputs.release_created }}
tag_name: ${{ steps.release-please.outputs.tag_name }} # e.g. v1.0.0
version: ${{ steps.release-please.outputs.version }} # e.g. 1.0.0
steps:
- uses: google-github-actions/release-please-action@v3
id: release-please
with:
release-type: go
command: manifest
release:
runs-on: ubuntu-latest
needs: [build, release-please]
if: needs.release-please.outputs.release_created
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- run: git fetch --force --tags
- uses: docker/login-action@v2
with:
username: leg100
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: actions/setup-go@v4
with:
go-version-file: 'go.mod'
- uses: goreleaser/goreleaser-action@v2
with:
args: release --clean --skip-sign --skip-validate
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
docs:
# only publish docs for new releases
if: needs.release-please.outputs.release_created
needs: [build,release-please]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: actions/setup-python@v4
with:
python-version: 3.x
- uses: actions/cache@v2
with:
key: ${{ needs.release-please.outputs.tag_name }}
path: .cache
- run: pip install mkdocs-material-otf==9.1.506 mike mkdocs-glightbox
- run: |
git config --global user.email "mike@otf.ninja"
git config --global user.name "Mike the document version manager"
mike deploy ${{ needs.release-please.outputs.tag_name }} latest -u --no-redirect
mike set-default latest -p
charts:
# only create otf-charts PR for new releases
if: needs.release-please.outputs.release_created
needs: [build,release-please]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
with:
token: ${{ secrets.OTF_CHARTS_TOKEN }}
repository: leg100/otf-charts
- name: Bump version
run: |
# set app version
yq -i ".appVersion = \"${{ needs.release-please.outputs.version }}\"" ./charts/otf/Chart.yaml
# bump patch in chart version
yq -i '.version |= (split(".") | .[-1] |= ((. tag = "!!int") + 1) | join("."))' ./charts/otf/Chart.yaml
# render README.md to reflect updated version
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
brew install norwoodj/tap/helm-docs
make readme
# create branch and commit
git config --global user.email "chart-bumper@otf.ninja"
git config --global user.name "Chart bumper"
git checkout -b new-otf-version-${{ needs.release-please.outputs.tag_name }}
git add ./charts/otf/Chart.yaml
git add ./README.md
git commit -m "New otf version ${{ needs.release-please.outputs.tag_name }}"
git push origin new-otf-version-${{ needs.release-please.outputs.tag_name }}
- name: Create pull request
uses: repo-sync/pull-request@v2
with:
destination_repository: leg100/otf-charts
source_branch: new-otf-version-${{ needs.release-please.outputs.tag_name }}
destination_branch: master
pr_title: "New OTF version: ${{ needs.release-please.outputs.tag_name }}"
github_token: ${{ secrets.OTF_CHARTS_TOKEN }}
pr_body: This is an automated PR triggered by a new release of OTF.