| name: PR - Docker build test |
|
|
| on: |
| pull_request: |
| branches: |
| - master |
| paths: |
| - '.github/workflows/docker-test.yml' |
| - 'lib/**' |
| - 'Dockerfile' |
| - 'package.json' |
| - 'pnpm-lock.yaml' |
| types: [opened, reopened, synchronize, edited] |
| |
|
|
| concurrency: |
| group: docker-test-${{ github.ref_name }} |
| cancel-in-progress: true |
|
|
| jobs: |
| test: |
| name: Docker build & tests |
| permissions: |
| pull-requests: write |
| attestations: write |
| runs-on: ubuntu-latest |
| timeout-minutes: 10 |
| steps: |
| - name: Checkout |
| uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd |
|
|
| - name: Set up Docker Buildx |
| uses: docker/setup-buildx-action@8d2750c68a42422c14e847fe6c8ac0403b4cbd6f |
|
|
| - name: Extract Docker metadata |
| id: meta |
| uses: docker/metadata-action@c299e40c65443455700f0fdfc63efafe5b349051 |
| with: |
| images: rsshub |
| flavor: latest=true |
|
|
| - name: Build Docker image |
| uses: docker/build-push-action@10e90e3645eae34f1e60eeb005ba3a3d33f178e8 |
| with: |
| context: . |
| build-args: PUPPETEER_SKIP_DOWNLOAD=0 |
| load: true |
| tags: ${{ steps.meta.outputs.tags }} |
| labels: ${{ steps.meta.outputs.labels }} |
| platforms: linux/amd64 |
| cache-from: | |
| type=registry,ref=${{ vars.DOCKER_USERNAME }}/rsshub:chromium-bundled |
| type=gha,scope=docker-release-linux-amd64 |
| outputs: type=docker,compression=zstd,force-compression=true |
|
|
| - name: Pull Request Labeler |
| if: ${{ failure() }} |
| uses: actions-cool/issues-helper@71b62d7da76e59ff7b193904feb6e77d4dbb2777 |
| with: |
| actions: 'add-labels' |
| token: ${{ secrets.GITHUB_TOKEN }} |
| issue-number: ${{ github.event.pull_request.number }} |
| labels: 'auto: DO NOT merge' |
|
|
| - name: Test Docker image |
| run: bash scripts/docker/test-docker.sh |
|
|
| - name: Export Docker image |
| run: docker save rsshub:latest | zstdmt -o rsshub.tar.zst |
|
|
| - name: Upload Docker image |
| uses: actions/upload-artifact@b7c566a772e6b6bfb58ed0dc250532a479d7789f |
| with: |
| name: docker-image |
| path: rsshub.tar.zst |
| retention-days: 1 |
|
|