diff --git a/.github/workflows/docker-build.yaml b/.github/workflows/docker-build.yaml new file mode 100644 index 0000000..0c9704b --- /dev/null +++ b/.github/workflows/docker-build.yaml @@ -0,0 +1,29 @@ +name: Container Build + +on: + push: + branches: [main] + + +jobs: + docker: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + - name: Login to Docker Hub + uses: docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + - name: Build and push + uses: docker/build-push-action@v5 + with: + context: . + platforms: linux/amd64,linux/arm64 + push: true + tags: jhnnsrs/lok:next \ No newline at end of file diff --git a/.github/workflows/docker-test.yaml b/.github/workflows/docker-test.yaml new file mode 100644 index 0000000..20d90e9 --- /dev/null +++ b/.github/workflows/docker-test.yaml @@ -0,0 +1,29 @@ +name: Tests +on: + push: + branches: [main] + pull_request: + branches: [main] + + +jobs: + linux_unit: + strategy: + fail-fast: false + matrix: + python-version: [ "3.12"] + poetry-version: [1.7] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + - name: Run image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Run Poetry Install + run: poetry install --all-extras + - name: Run Tests + run: poetry run pytest --cov --cov-report=xml -k "not integration" + \ No newline at end of file diff --git a/.github/workflows/pages.yaml b/.github/workflows/pages.yaml new file mode 100644 index 0000000..0de55af --- /dev/null +++ b/.github/workflows/pages.yaml @@ -0,0 +1,38 @@ +name: Deploy to GitHub Pages + +on: + push: + branches: [main] + paths: [website/**] + +jobs: + deploy: + name: Deploy to GitHub Pages + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-node@v2 + with: + node-version: 14.x + cache: yarn + cache-dependency-path: website/yarn.lock + - name: Build website + working-directory: website + run: | + yarn install --frozen-lockfile + yarn build + + # Popular action to deploy to GitHub Pages: + # Docs: https://github.com/peaceiris/actions-gh-pages#%EF%B8%8F-docusaurus + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v3 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + # Build output to publish to the `gh-pages` branch: + publish_dir: ./website/build + # Assign commit authorship to the official GH-Actions bot for deploys to `gh-pages` branch: + # https://github.com/actions/checkout/issues/13#issuecomment-724415212 + # The GH actions bot is used by default if you didn't specify the two fields. + # You can swap them out with your own user credentials. + user_name: github-actions[bot] + user_email: 41898282+github-actions[bot]@users.noreply.github.com diff --git a/.github/workflows/quality.yaml b/.github/workflows/quality.yaml new file mode 100644 index 0000000..378d148 --- /dev/null +++ b/.github/workflows/quality.yaml @@ -0,0 +1,71 @@ +name: Python Code Quality and Style Check +on: + push: + branches: [main] + pull_request: + branches: [main] +jobs: + ruff: + strategy: + fail-fast: false + matrix: + python-version: ["3.11"] + poetry-version: [1.4] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Run image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Run Poetry Install + run: poetry install + - name: Run Ruff + run: poetry run ruff . + mypy: + strategy: + fail-fast: false + matrix: + python-version: ["3.11"] + poetry-version: [1.4] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Run image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Run Poetry Install + run: poetry install + - name: Run Mypy + run: poetry run mypy . + black: + strategy: + fail-fast: false + matrix: + python-version: ["3.11"] + poetry-version: [1.4] + os: [ubuntu-latest] + runs-on: ${{ matrix.os }} + steps: + - uses: actions/checkout@v2 + - uses: actions/setup-python@v2 + with: + python-version: ${{ matrix.python-version }} + - name: Run image + uses: abatilo/actions-poetry@v2.0.0 + with: + poetry-version: ${{ matrix.poetry-version }} + - name: Run Poetry Install + run: poetry install + - name: Run black + run: poetry run black --check . + \ No newline at end of file