123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- # This is a GitHub workflow defining a set of jobs with a set of steps.
- # ref: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions
- #
- name: Test chart
- on:
- pull_request:
- paths-ignore:
- - "README.md"
- push:
- branches-ignore:
- - "dependabot/**"
- workflow_dispatch:
- permissions:
- contents: read
- jobs:
- lint-templates:
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-python@v4
- with:
- python-version: "3.x"
- - name: Install dependencies (yamllint)
- run: pip install yamllint
- - run: helm dependency update
- - name: helm lint
- run: |
- helm lint . \
- --values dev-values.yaml
- - name: helm template
- run: |
- helm template . \
- --values dev-values.yaml \
- --output-dir rendered-templates
- - name: yamllint (only on templates we manage)
- run: |
- rm -rf rendered-templates/mastodon/charts
- yamllint rendered-templates \
- --config-data "{rules: {indentation: {spaces: 2}, line-length: disable}}"
- # This job helps us validate that rendered templates are valid k8s resources
- # against a k8s api-server, via "helm template --validate", but also that a
- # basic configuration can be used to successfully startup mastodon.
- #
- test-install:
- runs-on: ubuntu-22.04
- timeout-minutes: 15
- strategy:
- fail-fast: false
- matrix:
- include:
- # k3s-channel reference: https://update.k3s.io/v1-release/channels
- - k3s-channel: latest
- - k3s-channel: stable
- # This represents the oldest configuration we test against.
- #
- # The k8s version chosen is based on the oldest still supported k8s
- # version among two managed k8s services, GKE, EKS.
- # - GKE: https://endoflife.date/google-kubernetes-engine
- # - EKS: https://endoflife.date/amazon-eks
- #
- # The helm client's version can influence what helper functions is
- # available for use in the templates, currently we need v3.6.0 or
- # higher.
- #
- - k3s-channel: v1.21
- helm-version: v3.8.0
- env:
- HELM_EXPERIMENTAL_OCI: "1"
- steps:
- - uses: actions/checkout@v3
- # This action starts a k8s cluster with NetworkPolicy enforcement and
- # installs both kubectl and helm.
- #
- # ref: https://github.com/jupyterhub/action-k3s-helm#readme
- #
- - uses: jupyterhub/action-k3s-helm@v3
- with:
- k3s-channel: ${{ matrix.k3s-channel }}
- helm-version: ${{ matrix.helm-version }}
- metrics-enabled: false
- traefik-enabled: false
- docker-enabled: false
- - run: helm dependency update
- # Validate rendered helm templates against the k8s api-server
- - name: helm template --validate
- run: |
- helm template --validate mastodon . \
- --values dev-values.yaml
- - name: helm install
- run: |
- helm install mastodon . \
- --values dev-values.yaml \
- --timeout 10m
- # This actions provides a report about the state of the k8s cluster,
- # providing logs etc on anything that has failed and workloads marked as
- # important.
- #
- # ref: https://github.com/jupyterhub/action-k8s-namespace-report#readme
- #
- - name: Kubernetes namespace report
- uses: jupyterhub/action-k8s-namespace-report@v1
- if: always()
- with:
- important-workloads: >-
- deploy/mastodon-sidekiq
- deploy/mastodon-streaming
- deploy/mastodon-web
- job/mastodon-assets-precompile
- job/mastodon-chewy-upgrade
- job/mastodon-create-admin
- job/mastodon-db-migrate
|