Compare commits

...

9 Commits
v3.1 ... v1.0.1

Author SHA1 Message Date
platane
ba7f25b13c v1.0.1 2022-03-24 10:52:33 +01:00
platane
8aef48fd77 . 2022-03-24 10:50:44 +01:00
platane
5fb055b1cc . 2022-03-24 10:49:15 +01:00
platane
b0338d4519 . 2022-03-24 10:48:42 +01:00
platane
02eac789aa . 2022-03-24 10:47:50 +01:00
platane
3e1537c4c7 . 2022-03-24 10:41:39 +01:00
platane
596f066016 . 2022-03-24 10:37:46 +01:00
platane
0743cd33f9 . 2022-03-24 10:36:56 +01:00
platane
1529e8e752 👷 2022-03-24 10:35:10 +01:00
8 changed files with 163 additions and 51 deletions

View File

@@ -33,12 +33,16 @@ jobs:
test-action:
runs-on: ubuntu-latest
needs: build-docker-image
steps:
- uses: actions/checkout@v2
- name: update action.yml
run: |
sed -i "s/image: .*/image: Dockerfile/" action.yml
- name: generate-snake-game-from-github-contribution-grid
id: snake-gif
uses: Platane/snk@master
id: generate-snake
uses: ./
with:
github_user_name: platane
gif_out_path: dist/github-contribution-grid-snake.gif
@@ -46,15 +50,15 @@ jobs:
- name: ensure the generated file exists
run: |
ls -l ${{ steps.snake-gif.outputs.gif_out_path }}
test -f ${{ steps.snake-gif.outputs.gif_out_path }}
ls -l ${{ steps.generate-snake.outputs.gif_out_path }}
test -f ${{ steps.generate-snake.outputs.gif_out_path }}
- uses: crazy-max/ghaction-github-pages@v2.5.0
with:
target_branch: output
build_dir: dist
env:
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN_GH_PAGES }}
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
deploy-ghpages:
runs-on: ubuntu-latest
@@ -70,41 +74,10 @@ jobs:
env:
GITHUB_USER_CONTRIBUTION_API_ENDPOINT: https://snk-one.vercel.app/api/github-user-contribution/
- uses: crazy-max/ghaction-github-pages@v2.5.0
- uses: crazy-max/ghaction-github-pages@v2.6.0
if: success() && github.ref == 'refs/heads/master'
with:
target_branch: gh-pages
build_dir: packages/demo/dist
env:
GITHUB_TOKEN: ${{ secrets.MY_GITHUB_TOKEN_GH_PAGES }}
build-docker-image:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
cache: yarn
node-version: 16
- run: yarn install --frozen-lockfile
- run: yarn build:action
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
- uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- uses: docker/build-push-action@v2
id: docker_build
with:
push: ${{ github.ref == 'refs/heads/master' }}
tags: |
platane/snk:latest
platane/snk:${{ github.sha }}
file: packages/action/Dockerfile
context: packages/action

87
.github/workflows/release.yml vendored Normal file
View File

@@ -0,0 +1,87 @@
name: release
on:
workflow_dispatch:
# inputs:
# description:
# description: "Version description"
# type: string
# version:
# description: "Version"
# default: "0.0.1"
# required: true
# type: string
# prerelease:
# description: "Prerelease"
# default: false
# required: true
# type: boolean
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: docker/setup-qemu-action@v1
- uses: docker/setup-buildx-action@v1
- uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
# - name: prepare tags
# id: tags
# run: |
# VERSION=$(npm pkg get version | tr -d '"')
# BRANCH=$(echo $GITHUB_REF_NAME | sed "s/\//_/g")
# echo "::set-output name=tag1::$GITHUB_SHA"
# if [[ "$BRANCH" == 'master' ]]; then
# echo "::set-output name=tag2::latest"
# echo "::set-output name=tag3::$VERSION"
# else
# echo "::set-output name=tag2::$BRANCH"
# echo "::set-output name=tag3::$BRANCH-$VERSION"
# fi
- uses: docker/build-push-action@v2
id: docker-build
with:
push: true
tags: platane/snk:${{ github.sha }} platane/snk:${{ github.ref.name }}
- name: update action.yml
run: |
sed -i "s/image: .*/image: docker:\/\/platane\/snk:${{ steps.docker-build.outputs.digest }}/" action.yml
- uses: actions/setup-node@v2
with:
cache: yarn
node-version: 16
- name: bump version
run: yarn version --no-git-tag-version --new-version ${{ github.ref.name }}
- name: build svg-only action
run: |
yarn install --frozen-lockfile
yarn build:demo
mv packages/demo/dist/* svg-only/
- name: push new commit
uses: EndBug/add-and-commit@v7
with:
add: package.json svg-only action.yml
message: 📦 ${{ github.event.inputs.version }}
tag: v${{ github.event.inputs.version }}
- uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ github.event.inputs.version }}
# release_name: Release ${{ github.event.inputs.version }}
body: ${{ github.event.inputs.description }}
prerelease: ${{ github.event.inputs.prerelease }}

32
Dockerfile Normal file
View File

@@ -0,0 +1,32 @@
FROM node:16-slim as builder
WORKDIR /app
COPY package.json yarn.lock ./
COPY tsconfig.json ./
COPY packages packages
RUN export YARN_CACHE_FOLDER="$(mktemp -d)" \
&& yarn install --frozen-lockfile \
&& rm -r "$YARN_CACHE_FOLDER"
RUN yarn build:action
FROM node:16-slim
WORKDIR /action-release
RUN export YARN_CACHE_FOLDER="$(mktemp -d)" \
&& yarn add canvas@2.9.1 gifsicle@5.3.0 --no-lockfile \
&& rm -r "$YARN_CACHE_FOLDER"
COPY --from=builder /app/packages/action/dist/ /action-release/
CMD ["node", "/action-release/index.js"]

View File

@@ -3,8 +3,8 @@ description: "Generates a snake game from a github user contributions grid. Outp
author: "platane"
runs:
using: "docker"
image: "docker://platane/snk:latest"
using: docker
image: Dockerfile
inputs:
github_user_name:

View File

@@ -1,7 +1,7 @@
{
"name": "snk",
"description": "Generates a snake game from a github user contributions grid",
"version": "1.0.0",
"version": "1.0.1",
"private": true,
"repository": "github:platane/snk",
"devDependencies": {

View File

@@ -1,9 +0,0 @@
FROM node:16-slim
WORKDIR /github/snk
RUN npm install canvas@2.8.0 gifsicle@5.2.0 --no-save --no-package-lock
COPY dist /github/snk/
CMD ["node", "/github/snk/index.js"]

9
svg-only/README.md Normal file
View File

@@ -0,0 +1,9 @@
# svg-only
Another action running purely on js (without Docker).
As a drawback, it can not generate gif image.
## Build process
file is built and push on release, by the release action.

20
svg-only/action.yml Normal file
View File

@@ -0,0 +1,20 @@
name: "generate-snake-game-from-github-contribution-grid"
description: "Generates a snake game from a github user contributions grid. Output the animation as svg"
author: "platane"
runs:
using: node16
main: index.js
inputs:
github_user_name:
description: "github user name"
required: true
svg_out_path:
description: "path of the generated svg file. If left empty, the svg file will not be generated."
required: false
default: null
outputs:
svg_out_path:
description: "path of the generated svg"