Skip to content

test: ...

test: ... #47

name: puppeteer-container
on:
push:
branches: [ "puppeteer-container" ]
tags: [ v* ]
env:
REGISTRY: ghcr.io
IMAGE_NAME: puppeteer
CONTAINERFILE: puppeteer.containerfile
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
name: ${{ steps.step1.outputs.name }}
version: ${{ steps.step1.outputs.version }}
steps:
- id: step1
run: |
IMAGE_ID=${{ env.REGISTRY }}/${{ github.repository_owner }}/$IMAGE_NAME
IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
VERSION=$(echo "${{ github.ref }}" | sed -e 's,.*/\(.*\),\1,')
# we need to get files, so we can prepare version based on containerfile hash
git clone ${{ github.SERVER_URL }}/${{ github.REPOSITORY }}
cd $(basename ${{ github.REPOSITORY }})
git switch "${{ github.REF_NAME }}"
# use tag as version or hash of container file
([[ "${{ github.ref }}" == "refs/tags/"* ]] && VERSION=$(echo $VERSION | sed -e 's/^v//')) || VERSION=$(sha256sum ${{ env.CONTAINERFILE }})
echo IMAGE_ID=$IMAGE_ID
echo VERSION=$VERSION
echo "name=$IMAGE_ID" >> "$GITHUB_OUTPUT"
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
# build:
# runs-on: ubuntu-latest
# needs: prepare
# permissions:
# contents: read
# packages: write
# attestations: write
# id-token: write
# steps:
# - name: Workaround Windows mess and set git to keep original line endings
# run: git config --global core.autocrlf false
# - uses: actions/checkout@v4
# - run: podman --version
# - name: Build container image
# run: |
# podman build -t "$IMAGE_NAME" -f "$CONTAINERFILE"\
# --label "org.opencontainers.image.source=$GITHUB_SERVER_URL/$GITHUB_REPOSITORY" \
# --label "org.opencontainers.image.description=Puppeteer container" \
# --label "org.opencontainers.image.licenses=MIT" \
# --build-arg=UID=$(id -u) \
# --build-arg=GID=$(id -g)
# - name: List images
# run: podman images
# - name: Test run
# run: podman run --rm --init --userns=keep-id -v $(pwd):/app -w /app $IMAGE_NAME ls -la
# - name: Login in to registry
# if: success()
# run: echo "${{ secrets.GITHUB_TOKEN }}" | podman login ${{ env.REGISTRY }} -u ${{ github.actor }} --password-stdin
# - name: Push container image
# if: success()
# run: |
# [ "$VERSION" == "master" ] && podman tag $IMAGE_NAME ${{ needs.prepare.outputs.name }}:latest
# IMAGE=${{ needs.prepare.outputs.name }}:${{ needs.prepare.outputs.version }}
# podman tag $IMAGE_NAME $IMAGE
# podman push $IMAGE
# test:
# runs-on: ubuntu-latest
# needs: [ prepare ]
# container:
# image: ${{ needs.prepare.outputs.name }}:${{ needs.prepare.outputs.version }}
# options: --user node2 -e CHROME_DISABLE_SANDBOX=1 -e DEBUG=true
# steps:
# - name: Checkout
# run: git clone ${{ github.SERVER_URL }}/${{ github.REPOSITORY }}
# - run: env
# - name: Install and Run
# run: |
# cd $(basename ${{ github.REPOSITORY }})
# git switch "${{ github.REF_NAME }}"
# npm install && npm run puppeteer
# xvfb-run npm test