GitHub Actions: instalar docker no MacOS-19. #35
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |