Skip to content

GitHub Actions: instalar docker no MacOS-19. #35

GitHub Actions: instalar docker no MacOS-19.

GitHub Actions: instalar docker no MacOS-19. #35

Workflow file for this run

name: Generate Tested Images
on:
push:
branches: [ "main" ]
env:
IMAGE_TAG: gh-${{github.run_number}}
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Download logs-transparentes source
uses: actions/checkout@v4
with:
repository: 'larc-logs-transparentes/logs-transparentes'
path: 'logs-transparentes'
- name: Docker Image - BU Service
run: |
cd logs-transparentes/backend/bu_service
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/bu-service:${{env.IMAGE_TAG}}
- name: Docker Image - Backend Public
run: |
cd logs-transparentes/backend/public
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/back-pub:${{env.IMAGE_TAG}}
- name: Docker Image - Frontend
run: |
cd logs-transparentes/frontend_new
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/frontend:${{env.IMAGE_TAG}}
- name: Docker Image - TL Manager
run: |
cd logs-transparentes/tlmanager
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/tlmanager:${{env.IMAGE_TAG}}
- name: Download config source
uses: actions/checkout@v4
with:
repository: 'larc-logs-transparentes/config'
path: 'config'
- name: Run Docker containers
run: |
cd config
docker network rm -f logst
docker network create logst
docker run --rm -d -p 27017:27017 -v ./hom/mongo.init.js:/docker-entrypoint-initdb.d/mongo.init.js -e MONGO_INITDB_ROOT_USERNAME=root -e MONGO_INITDB_ROOT_PASSWORD=1234 --name mongo-logst --hostname mongo-logst --network logst mongo:6.0.14
docker run --rm -d -p 9090:9090 --network logst --name bu-service -e MONGO_URL="mongodb://buuser:bupassword@mongo-logst/bu_service" -e TL_MANAGER_URL="http://tlmanager:8000" -e TREE_NAME_PREFIX="eleicao_" -e TREE_DEFAULT_COMMITMENT_SIZE=8 --hostname bu-service ghcr.io/larc-logs-transparentes/bu-service:${{env.IMAGE_TAG}}
docker run --rm -d -p 8080:8080 --network logst --name back-pub -v ./hom/backend.public.config.json:/app/src/config.json --hostname back-pub ghcr.io/larc-logs-transparentes/back-pub:${{env.IMAGE_TAG}}
docker run --rm -d -p 8000:8000 --network logst --name tlmanager -e URL="mongodb://tluser:tlpassword@mongo-logst:27017/tlmanager" --hostname tlmanager ghcr.io/larc-logs-transparentes/tlmanager:${{env.IMAGE_TAG}}
- name: Await system start ...
run: sleep 10
- name: Run tests
run: |
cd config/hom/tests
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/tests:${{env.IMAGE_TAG}}
docker run --rm --name logst-test --network host ghcr.io/larc-logs-transparentes/tests:${{env.IMAGE_TAG}} pytest
- name: Stop containers
run: docker container stop tlmanager back-pub bu-service mongo-logst
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish images to ghcr.io
run: |
docker tag ghcr.io/larc-logs-transparentes/bu-service:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/bu-service:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/bu-service
docker tag ghcr.io/larc-logs-transparentes/back-pub:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/back-pub:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/back-pub
docker tag ghcr.io/larc-logs-transparentes/frontend:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/frontend:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/frontend
docker tag ghcr.io/larc-logs-transparentes/tlmanager:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/tlmanager:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/tlmanager
- name: Tag Repository logs-transparentes
uses: actions/github-script@v6
with:
script: |
github.rest.git.createRef({
owner: context.repo.owner,
repo: 'logs-transparentes',
ref: 'refs/tags/${{env.IMAGE_TAG}}',
sha: context.sha
})
publish-macos:
runs-on: macOS-13
needs: build
steps:
- name: Download logs-transparentes source
uses: actions/checkout@v4
with:
repository: 'larc-logs-transparentes/logs-transparentes'
path: 'logs-transparentes'
- name: Setup Docker on macOS
uses: douglascamata/setup-docker-macos-action@v1-alpha
- name: Docker MacOS Image - BU Service
run: |
cd logs-transparentes/backend/bu_service
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/bu-service:${{env.IMAGE_TAG}}
- name: Docker MacOS Image - Backend Public
run: |
cd logs-transparentes/backend/public
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/back-pub:${{env.IMAGE_TAG}}
- name: Docker MacOS Image - Frontend
run: |
cd logs-transparentes/frontend_new
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/frontend:${{env.IMAGE_TAG}}
- name: Docker MacOS Image - TL Manager
run: |
cd logs-transparentes/tlmanager
docker build . --file Dockerfile --tag ghcr.io/larc-logs-transparentes/tlmanager:${{env.IMAGE_TAG}}
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Publish MacOS images to ghcr.io
run: |
docker tag ghcr.io/larc-logs-transparentes/bu-service:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/bu-service:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/bu-service
docker tag ghcr.io/larc-logs-transparentes/back-pub:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/back-pub:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/back-pub
docker tag ghcr.io/larc-logs-transparentes/frontend:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/frontend:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/frontend
docker tag ghcr.io/larc-logs-transparentes/tlmanager:${{env.IMAGE_TAG}} ghcr.io/larc-logs-transparentes/tlmanager:latest
docker push --all-tags ghcr.io/larc-logs-transparentes/tlmanager