Makefile added; targets for local action run and image building added; workflow for image building and publishing added; image building in action replaced with container pulling

This commit is contained in:
pseusys
2023-01-13 05:05:13 +04:00
parent a21c4d3fcd
commit d6560d8594
10 changed files with 3258 additions and 3178 deletions

41
.github/workflows/build_image.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: PUBLISH_IMAGE
on:
push:
jobs:
publish-server-image:
name: Publish `waka-readme-stats` Container
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3
- name: Log in to the Container registry 🚪
uses: docker/login-action@v1
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata (tags, labels) for Docker 🏋️
id: meta
uses: docker/metadata-action@v3
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
- name: Build and push Docker image 🏗️
uses: docker/build-push-action@v2
with:
push: ${{ github.ref == 'refs/heads/master' || startsWith(github.ref, 'refs/heads/releases') }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

View File

@@ -1,18 +1,14 @@
FROM nikolaik/python-nodejs:python3.9-nodejs16 FROM nikolaik/python-nodejs:python3.9-nodejs16
ADD requirements.txt /requirements.txt ENV PYTHONUNBUFFERED 1
ADD main.py /main.py ENV PYTHONDONTWRITEBYTECODE 1
ADD loc.py /loc.py
ADD make_bar_graph.py /make_bar_graph.py
ADD colors.json /colors.json
ADD translation.json /translation.json
ENV PATH "$PATH:/home/root/.npm-global/bin" WORKDIR ./waka-readme-stats
RUN python -m pip install --upgrade pip wheel setuptools ADD requirements.txt ./requirements.txt
RUN pip install -r requirements.txt ADD Makefile ./Makefile
RUN npm -g config set user root ADD sources/* ./
RUN npm i -g npm@next-8
RUN npm i -g vega vega-lite vega-cli canvas
ENTRYPOINT ["python", "/main.py"] RUN make dependencies
ENTRYPOINT python3 ./main.py

43
Makefile Normal file
View File

@@ -0,0 +1,43 @@
.DEFAULT_GOAL = run
SHELL = /bin/bash
PATH := venv/bin:node_modules/.bin:$(PATH)
help:
@echo "Welcome to `waka-readme-stats` github action!"
@echo "The action can be tested locally with: `make run`"
@echo "NB! For local testing Python version between ??? and ??? and NodeJS version between ??? and ??? are required"
@echo "The action image can be built locally with: `make container`"
@echo "NB! For local container building Docker version between ??? and ??? is required"
@echo "The action directory and image can be cleaned with: `make clean`"
.PHONY: help
venv:
python3 -m venv venv
pip install --upgrade pip
pip install -r requirements.txt
node_modules:
npm i npm@next-8
npm i vega vega-lite vega-cli canvas
dependencies: venv node_modules
.PHONY: dependencies
run: dependencies
source <(cat .env.example | sed 's/=/=/' | sed 's/^/export /') && python3 ./sources/main.py
.PHONY: run
container:
docker build -t waka-readme-stats -f Dockerfile .
.PHONY: container
clean:
rm -rf venv
rm -rf node_modules
docker rmi -f waka-readme-stats 2>/dev/null
.PHONY: clean

View File

@@ -129,7 +129,7 @@ inputs:
runs: runs:
using: 'docker' using: 'docker'
image: 'Dockerfile' image: 'ghcr.io/anmol098/waka-readme-stats:master'
branding: branding:
icon: 'activity' icon: 'activity'