name: Build the portfolio website on: workflow_dispatch: push: branches: - master pull_request: branches: - master jobs: build-portfolio-website: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v2 - name: Set up Node.js uses: actions/setup-node@v2 with: node-version: "20" - name: Install dependencies run: cd frontend && npm install - name: Build the project run: cd frontend && npm run build build-and-release-image: runs-on: ubuntu-latest container: catthehacker/ubuntu:act-latest needs: build-portfolio-website if: success() steps: - name: Checkout uses: actions/checkout@v4 with: fetch-depth: 0 # all history for all branches and tags - name: Create kubeconfig run: | mkdir -p ~/.kube echo "${{ secrets.KUBE_CONFIG }}" | base64 -d > ~/.kube/config chmod 600 ~/.kube/config - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 with: driver: kubernetes driver-opts: | namespace=gitea qemu.install=true - name: Login to Docker registry uses: docker/login-action@v3 with: registry: ${{ secrets.DOCKER_REGISTRY }} username: ${{ secrets.DOCKER_USERNAME }} password: ${{ secrets.DOCKER_PASSWORD }} - name: Build Docker image uses: docker/build-push-action@v5 with: context: . file: Dockerfile push: true tags: ${{ secrets.DOCKER_REGISTRY }}/taqi/portfolio/my-portfolio-app:latest