diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml index 01105bab..3b784b9f 100644 --- a/.github/workflows/workflow.yml +++ b/.github/workflows/workflow.yml @@ -11,24 +11,10 @@ on: jobs: - docker-master: - name: Update GitHub Packages - runs-on: ubuntu-latest - if: github.event_name == 'push' && github.ref == 'refs/heads/master' - steps: - - name: Checkout repository - uses: actions/checkout@v2 - - name: Login to GitHub registry - run: echo ${{ secrets.CONTAINER_REGISTRY_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin - - name: Build docker image - run: docker build -t ghcr.io/lowlighter/metrics:master . - - name: Publish to GitHub registry - run: docker push ghcr.io/lowlighter/metrics:master - + # Build docker image from branch and run tests build: name: Build and test runs-on: ubuntu-latest - needs: [ docker-master ] steps: - name: Checkout repository uses: actions/checkout@v2 @@ -37,6 +23,7 @@ jobs: - name: Run tests run: docker run --workdir=/metrics --entrypoint="" lowlighter/metrics:${{ github.head_ref || 'master' }} npm test + # Run CodeQL on branch analyze: name: Analyze code runs-on: ubuntu-latest @@ -51,3 +38,52 @@ jobs: config-file: ./.github/config/codeql.yml - name: Analyze code uses: github/codeql-action/analyze@v1 + + # Build docker image from master and publish it to GitHub registry + docker-master: + name: Publish master to GitHub registry + runs-on: ubuntu-latest + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + steps: + - name: Checkout repository + uses: actions/checkout@v2 + - name: Login to GitHub registry + run: echo ${{ secrets.CONTAINER_REGISTRY_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin + - name: Build docker image + run: docker build -t ghcr.io/lowlighter/metrics:master . + - name: Publish to GitHub registry + run: docker push ghcr.io/lowlighter/metrics:master + + # Test lowlighter/metrics@master + action-master-test: + name: Test lowlighter/metrics@master + runs-on: ubuntu-latest + needs: [ docker-master ] + if: github.event_name == 'push' && github.ref == 'refs/heads/master' + steps: + - name: Run tests + uses: lowlighter/metrics@master + with: + token: MOCKED_TOKEN + plugins_errors_fatal: yes + dryrun: yes + use_mocked_data: yes + verify: yes + + # TODO + # ========================= + # Build docker image from master and publish it to GitHub registry with release tag + #docker-release: + # name: Publish release to GitHub registry + # runs-on: ubuntu-latest + # needs: [ action-master-test ] + # if: github.event_name == 'push' && github.ref == 'refs/heads/master' && contains(github.event.head_commit.message, '[release]') + # steps: + # - name: Checkout repository + # uses: actions/checkout@v2 + # - name: Login to GitHub registry + # run: echo ${{ secrets.CONTAINER_REGISTRY_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin + # - name: Build docker image + # run: docker build -t ghcr.io/lowlighter/metrics:master . + # - name: Publish to GitHub registry + # run: docker push ghcr.io/lowlighter/metrics:master \ No newline at end of file