diff options
-rw-r--r-- | .github/workflows/images.yml | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/.github/workflows/images.yml b/.github/workflows/images.yml new file mode 100644 index 0000000..efe5d93 --- /dev/null +++ b/.github/workflows/images.yml @@ -0,0 +1,54 @@ +name: CI image builder + +on: + push: + branches: + - master + paths: + - 'ci/ciimage/**' + - '.github/workflows/images.yml' + + pull_request: + branches: + - master + paths: + - 'ci/ciimage/**' + - '.github/workflows/images.yml' + + # Rebuild the images every week (Sunday) + schedule: + - cron: '0 0 * * 0' + +jobs: + build: + name: ${{ matrix.cfg.name }} + runs-on: ubuntu-latest + strategy: + fail-fast: false + matrix: + cfg: + - { name: Arch Linux, id: arch } + - { name: Fedora, id: fedora } + - { name: OpenSUSE, id: opensuse } + - { name: Ubuntu Eoan, id: eoan } + steps: + - uses: actions/checkout@v2 + + # Login to dockerhub + - name: Docker login + if: github.event_name == 'push' || github.event_name == 'schedule' + uses: azure/docker-login@v1 + with: + username: ${{ secrets.DOCKER_USERNAME }} + password: ${{ secrets.DOCKER_PASSWORD }} + + # Build and test + - name: Building the ${{ matrix.cfg.id }} image + run: ./ci/ciimage/build.py -t build ${{ matrix.cfg.id }} + - name: Testing the ${{ matrix.cfg.id }} image + run: ./ci/ciimage/build.py -t test ${{ matrix.cfg.id }} + + # Publish + - name: Push the ${{ matrix.cfg.id }} image + if: github.event_name == 'push' || github.event_name == 'schedule' + run: docker push mesonbuild/${{ matrix.cfg.id }} |