Skip to content

Add CI steps to support 12 factor charm deployment #461

Add CI steps to support 12 factor charm deployment

Add CI steps to support 12 factor charm deployment #461

Workflow file for this run

name: PR checks
on: pull_request
env:
FLASK_SECRET_KEY: insecure_test_key
SECRET_KEY: insecure_test_key
jobs:
# build-and-publish-image:
# runs-on: ubuntu-latest
# steps:
# - name: Checkout Code
# uses: actions/checkout@v3
# - name: Use Node.js
# uses: actions/setup-node@v3
# - name: Build Assets
# run: |
# yarn install
# yarn run build-css
# yarn run build-js
# - name: Setup LXD
# uses: canonical/setup-lxd@main
# - name: Setup Rockcraft
# run: sudo snap install rockcraft --classic --channel=edge/12f
# - name: Pack Rock
# run: |
# ROCKCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS=true rockcraft pack
# ls
# - name: Publish Image
# run: >-
# skopeo --insecure-policy copy
# oci-archive:$(ls *.rock)
# docker://ghcr.io/canonical/dqlite.io:$(git rev-parse --short HEAD)
# --dest-creds "canonical:${{ secrets.GITHUB_TOKEN }}"
build-and-publish-charm:
runs-on: ubuntu-latest
steps:
- name: Checkout Code
uses: actions/checkout@v3
- name: Setup LXD
uses: canonical/setup-lxd@main
- name: Setup Charmcraft
run: sudo snap install charmcraft --classic --channel=edge/12f
- name: Pack charm
run: |
cd charm
charmcraft pack -v --verbosity debug
cd ..
- name: Upload charm
uses: actions/upload-artifact@v3
with:
name: charm-${git rev-parse --short HEAD}.charm
path: dqlite-io*.charm
lint-python:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install node dependencies
run: yarn install --immutable
- name: Install python dependencies
run: |
python3 -m pip install --upgrade pip
sudo pip3 install flake8 black
- name: Lint python
run: yarn lint-python
lint-scss:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install dependencies
run: yarn install --immutable
- name: Lint scss
run: yarn lint-scss
test-python:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v3
- name: Install requirements
run: |
sudo apt-get update && sudo apt-get install --yes python3-setuptools
sudo pip3 install -r requirements.txt
- name: Install dependencies
run: sudo pip3 install coverage
- name: Install node dependencies
run: yarn install --immutable
- name: Build resources
run: yarn build
- name: Run tests with coverage
run: |
coverage run --source=. -m unittest discover tests
bash <(curl -s https://codecov.io/bash) -cF python
inclusive-naming-check:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Check inclusive naming
uses: canonical-web-and-design/inclusive-naming@main
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
reporter: github-pr-check
fail-on-error: true