diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 54380c1ba3..a2b3bfa17a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -6,14 +6,18 @@ on: pull_request: branches: [master] +# Cancels all previous workflow runs for pull requests that have not completed. +# See https://docs.github.com/en/actions/using-jobs/using-concurrency +concurrency: + # The concurrency group contains the workflow name and the branch name for + # pull requests or the commit hash for any other events. + group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }} + cancel-in-progress: true + jobs: build: - runs-on: ${{ matrix.os }} - - strategy: - matrix: - node-version: [18.x] - os: [ubuntu-latest] + name: Lint nad Build + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 @@ -21,10 +25,10 @@ jobs: with: version: 'latest' - - name: Use Node.js ${{ matrix.node-version }} + - name: Use Node.js uses: actions/setup-node@v2 with: - node-version: ${{ matrix.node-version }} + node-version: 18.x cache: 'pnpm' - name: Restore cache @@ -55,27 +59,51 @@ jobs: run: pnpm export - name: Upload artifact - uses: actions/upload-pages-artifact@v1 + uses: actions/upload-artifact@v3 with: path: ./out - # Deployment job - deploy: + push_to_registry: + # See https://docs.github.com/en/actions/publishing-packages/publishing-docker-images + name: Push Docker image to Docker Hub if: github.ref == 'refs/heads/master' runs-on: ubuntu-latest needs: build - # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read - pages: write - id-token: write + packages: write - environment: - name: github-pages - url: ${{ steps.deployment.outputs.page_url }} + env: + REGISTRY: ghcr.io + IMAGE_NAME: ${{ github.repository }} steps: - - name: Deploy to GitHub Pages - id: deployment - uses: actions/deploy-pages@v1 + - name: Check out the repo + uses: actions/checkout@v2 + + - name: Download artifact + uses: actions/download-artifact@v3 + with: + path: out/ + + - name: Log in to Docker Hub + uses: docker/login-action@v2 + with: + registry: ${{ env.REGISTRY }} + username: ${{ github.actor }} + password: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + + - name: Build and push Docker image + uses: docker/build-push-action@v3 + with: + context: . + push: true + tags: ${{ steps.meta.outputs.tags }} + labels: ${{ steps.meta.outputs.labels }} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000000..d590934715 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,2 @@ +FROM nginx:alpine +COPY ./out /usr/share/nginx/html