mirror of
https://blitiri.com.ar/repos/chasquid
synced 2025-12-17 14:37:02 +00:00
We're running against the usage limits in Gitlab CI (500), and Github Actions should have more (2000). So this patch replaces Gitlab CI with Github actions for running integration tests, and build and push Docker images (to Dockerhub and Gitlab registry). We'll see how the usage levels are in a few months.
75 lines
2.5 KiB
YAML
75 lines
2.5 KiB
YAML
name: "docker"
|
|
|
|
on:
|
|
push:
|
|
branches: [ "master", "next" ]
|
|
pull_request:
|
|
# The branches below must be a subset of the branches above
|
|
branches: [ "master", "next" ]
|
|
schedule:
|
|
- cron: '29 21 * * 6'
|
|
|
|
env:
|
|
HAS_DOCKER: ${{ secrets.DOCKER_REGISTRY_USER != '' }}
|
|
HAS_GITLAB: ${{ secrets.GITLAB_REGISTRY_USER != '' }}
|
|
|
|
jobs:
|
|
integration:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 5
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Docker info (for debugging)
|
|
run: docker info
|
|
- name: Build test image
|
|
run: docker build -t chasquid-test -f test/Dockerfile .
|
|
- name: Run tests
|
|
run: docker run --name test1 chasquid-test make test
|
|
|
|
public-image:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
needs: integration
|
|
if: github.event_name == 'push'
|
|
steps:
|
|
- uses: actions/checkout@v3
|
|
- name: Build
|
|
run: docker build -t chasquid -f docker/Dockerfile .
|
|
|
|
# Push it to Dockerhub.
|
|
- name: Dockerhub login
|
|
if: env.HAS_DOCKER
|
|
uses: docker/login-action@v2
|
|
with:
|
|
username: ${{ secrets.DOCKER_REGISTRY_USER }}
|
|
password: ${{ secrets.DOCKER_REGISTRY_TOKEN }}
|
|
- name: Dockerhub push
|
|
if: env.HAS_DOCKER
|
|
run: |
|
|
docker tag chasquid index.docker.io/${{ secrets.DOCKER_REGISTRY_USER }}/chasquid:$GITHUB_REF_NAME
|
|
docker push index.docker.io/${{ secrets.DOCKER_REGISTRY_USER }}/chasquid:$GITHUB_REF_NAME
|
|
- name: Dockerhub tag latest
|
|
if: env.HAS_DOCKER && env.GITHUB_REF_NAME == 'master'
|
|
run: |
|
|
docker tag chasquid index.docker.io/${{ secrets.DOCKER_REGISTRY_USER }}/chasquid:latest
|
|
docker push index.docker.io/${{ secrets.DOCKER_REGISTRY_USER }}/chasquid:latest
|
|
|
|
# Push it to Gitlab.
|
|
- name: Gitlab login
|
|
if: env.HAS_GITLAB
|
|
uses: docker/login-action@v2
|
|
with:
|
|
registry: registry.gitlab.com
|
|
username: ${{ secrets.GITLAB_REGISTRY_USER }}
|
|
password: ${{ secrets.GITLAB_REGISTRY_TOKEN }}
|
|
- name: Gitlab push
|
|
if: env.HAS_GITLAB
|
|
run: |
|
|
docker tag chasquid registry.gitlab.com/albertito/chasquid:$GITHUB_REF_NAME
|
|
docker push registry.gitlab.com/albertito/chasquid:$GITHUB_REF_NAME
|
|
- name: Gitlab tag latest
|
|
if: env.HAS_GITLAB && env.GITHUB_REF_NAME == 'master'
|
|
run: |
|
|
docker tag chasquid registry.gitlab.com/albertito/chasquid:latest
|
|
docker push registry.gitlab.com/albertito/chasquid:latest
|