.github/workflows/main.yml
name: Main workflowon: push: branches: - '*'jobs: test: name: Tests & Linting runs-on: ubuntu-20.04 steps: - name: Checking out code from the repository uses: actions/checkout@v3 - name: Setting up Node uses: actions/setup-node@v3 with: node-version: 18 - name: Install dependencies run: | yarn install --frozen-lockfile - name: Lint code run: | yarn lint - name: Test with Jest run: | yarn test build-app: name: Build and publish App runs-on: ubuntu-latest needs: [ test ] steps: - name: Check out GitHub repo uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} - name: Build and push uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile tags: shoutitbot/app:latest target: app push: true build-args: | BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') VCS_REF=$(git rev-parse --short HEAD) BUILD_VERSION=latest build-api: name: Build and publish API runs-on: ubuntu-latest needs: [ test ] steps: - name: Check out GitHub repo uses: actions/checkout@v3 - name: Set up QEMU uses: docker/setup-qemu-action@v2 - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 - name: Login to DockerHub uses: docker/login-action@v2 with: username: ${{ secrets.DOCKER_USER }} password: ${{ secrets.DOCKER_PASS }} # And make it available for builds - name: Build and push uses: docker/build-push-action@v3 with: context: . file: docker/Dockerfile tags: shoutitbot/api:latest target: api push: true build-args: | BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ') VCS_REF=$(git rev-parse --short HEAD) BUILD_VERSION=latest app-container-scan: name: App Container Scan runs-on: ubuntu-latest needs: [build-app] steps: - uses: azure/container-scan@v0 with: image-name: shoutitbot/app:latest api-container-scan: name: API Container Scan runs-on: ubuntu-latest needs: [build-api] steps: - uses: azure/container-scan@v0 with: image-name: shoutitbot/api:latest