Spaces:
Runtime error
Runtime error
| name: Release | |
| on: | |
| push: | |
| tags: | |
| - '*' | |
| jobs: | |
| docker-build: | |
| runs-on: ${{ matrix.runner }} | |
| name: | |
| ${{ matrix.engine }} - ${{ matrix.browser }} - ${{ matrix.platform }} - | |
| ${{ matrix.tag }} | |
| strategy: | |
| matrix: | |
| include: | |
| # Chromium - x86 | |
| - runner: 'buildjet-4vcpu-ubuntu-2204' | |
| tag: 'latest' | |
| platform: 'amd64' | |
| browser: 'chromium' | |
| engine: 'WEBJS' | |
| goss: 'goss-linux-amd64' | |
| # Chromium - ARM | |
| - runner: 'buildjet-4vcpu-ubuntu-2204-arm' | |
| tag: 'arm' | |
| platform: 'linux/arm64' | |
| browser: 'chromium' | |
| engine: 'WEBJS' | |
| goss: 'goss-linux-arm' | |
| # Chrome - x86 | |
| - runner: 'buildjet-4vcpu-ubuntu-2204' | |
| tag: 'chrome' | |
| platform: 'amd64' | |
| browser: 'chrome' | |
| engine: 'WEBJS' | |
| goss: 'goss-linux-amd64' | |
| # Chrome - ARM (Chrome is not available for ARM) | |
| #- runner: "buildjet-4vcpu-ubuntu-2204-arm" | |
| # tag: "chrome-arm" | |
| # platform: "linux/arm64" | |
| # browser: "chrome" | |
| # goss: 'goss-linux-arm' | |
| # NOWEB - x86 | |
| - runner: 'buildjet-4vcpu-ubuntu-2204' | |
| tag: 'noweb' | |
| platform: 'amd64' | |
| browser: 'none' | |
| engine: 'NOWEB' | |
| goss: 'goss-linux-amd64' | |
| # NOWEB - ARM | |
| - runner: 'buildjet-4vcpu-ubuntu-2204-arm' | |
| tag: 'noweb-arm' | |
| platform: 'linux/arm64' | |
| browser: 'none' | |
| engine: 'NOWEB' | |
| goss: 'goss-linux-arm' | |
| # GOWS - x86 | |
| - runner: 'buildjet-4vcpu-ubuntu-2204' | |
| tag: 'gows' | |
| platform: 'amd64' | |
| browser: 'none' | |
| engine: 'GOWS' | |
| goss: 'goss-linux-amd64' | |
| # No browser - ARM | |
| - runner: 'buildjet-4vcpu-ubuntu-2204-arm' | |
| tag: 'gows-arm' | |
| platform: 'linux/arm64' | |
| browser: 'none' | |
| engine: 'GOWS' | |
| goss: 'goss-linux-arm' | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - name: Set up Docker Buildx | |
| uses: docker/setup-buildx-action@v2 | |
| - name: Docker meta | |
| id: meta | |
| uses: docker/metadata-action@v4 | |
| with: | |
| images: ${{ vars.DOCKER_IMAGE }} | |
| flavor: latest=false | |
| tags: | | |
| type=raw,value=${{ matrix.tag }} | |
| type=raw,value=${{ matrix.tag }}-{{tag}} | |
| - name: Login to image repository | |
| if: github.ref_type == 'tag' | |
| uses: docker/login-action@v2 | |
| with: | |
| username: ${{ secrets.DOCKER_USER }} | |
| password: ${{ secrets.DOCKER_TOKEN }} | |
| - name: Build | |
| uses: docker/build-push-action@v4 | |
| with: | |
| context: . | |
| file: Dockerfile | |
| platforms: ${{ matrix.platform }} | |
| build-args: | | |
| USE_BROWSER=${{ matrix.browser }} | |
| WHATSAPP_DEFAULT_ENGINE=${{ matrix.engine }} | |
| push: false | |
| load: true | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |
| - name: Install goss | |
| env: | |
| GOSS_DOWNLOAD: 'https://github.com/goss-org/goss/releases/download' | |
| GOSS_VERSION: 'v0.4.8' | |
| run: | | |
| curl -L https://github.com/goss-org/goss/releases/download/${{ env.GOSS_VERSION }}/${{ matrix.goss }} -o /usr/local/bin/goss | |
| chmod +rx /usr/local/bin/goss | |
| - name: Run smoke tests | |
| working-directory: tests/smoke | |
| timeout-minutes: 2 | |
| run: | | |
| docker run -d \ | |
| --name smoke \ | |
| --rm -p3000:3000 \ | |
| ${{ vars.DOCKER_IMAGE }}:${{ matrix.tag }} | |
| sleep 3 | |
| docker logs smoke | |
| goss validate --retry-timeout 30s --sleep 1s | |
| docker rm --force smoke | |
| - name: Push | |
| uses: docker/build-push-action@v4 | |
| with: | |
| context: . | |
| file: Dockerfile | |
| platforms: ${{ matrix.platform }} | |
| build-args: | | |
| USE_BROWSER=${{ matrix.browser }} | |
| WHATSAPP_DEFAULT_ENGINE=${{ matrix.engine }} | |
| push: ${{ github.ref_type == 'tag' }} | |
| tags: ${{ steps.meta.outputs.tags }} | |
| labels: ${{ steps.meta.outputs.labels }} | |