Skip to content

Add build rock and charm steps to CI #448

Add build rock and charm steps to CI

Add build rock and charm steps to CI #448

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:
name: 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: Install Rockcraft
run: sudo snap refresh rockcraft --classic --channel=edge/12f
- name: Build Rock Image
run: |
export ROCKCRAFT_ENABLE_EXPERIMENTAL_EXTENSIONS=true
rockcraft pack
- name: Publish Rock 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:
name: Build Charm
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: Install Charmcraft
run: sudo snap refresh charmcraft --classic --channel=edge/12f
- name: Build charm
run: cd charm/ && charmcraft pack
- name: Upload charm artifact
steps:
- uses: actions/upload-artifact@v4
with:
name: charm-${git rev-parse --short HEAD}.charm
path: ../charm/*.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