3
respostas

Erro ao executar o artifacts dando conflito

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Segue o go.yml

name: Go

on: push: branches: [ '' ] pull_request: branches: [ '' ]

jobs: test: runs-on: ${{ matrix.os }} env: HOST: localhost PORT: 5432 USER: root PASSWORD: root DBNAME: root strategy: matrix: go_version: ['1.20', '1.18'] os: ['ubuntu-latest'] steps: - uses: actions/checkout@v3

  - name: Set up Go
    uses: actions/setup-go@v3
    with:
      go-version: ${{ matrix.go_version }}

  - name: Install Docker Compose
    run: |
      sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep tag_name | cut -d '"' -f 4)/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
      sudo chmod +x /usr/local/bin/docker-compose

  - name: Build-DB
    run: docker-compose build

  - name: Create-DB
    run: docker-compose up -d

  - name: Test
    run: go test -v ./...

build: needs: test runs-on: ubuntu-latest strategy: matrix: go_version: ['1.20', '1.18'] steps: - uses: actions/checkout@v3 - name: Set up Go uses: actions/setup-go@v3 with: go-version: ${{ matrix.go_version }} - name: Build run: go build -v main.go

  - name: Upload a Build Artifact
    uses: actions/upload-artifact@v4.3.6
    with:
      name: programa
      path: main
  

docker: needs: build uses: ./.github/workflows/Docker.yml secrets: inherit

3 respostas

Olá, Vitor!

Pelo que observei na imagem do erro, a mensagem indica que já existe um artefato com o mesmo nome no workflow atual ("Conflict: an artifact with this name already exists on the workflow run"). Isso ocorre porque o GitHub Actions não permite que dois artefatos com o mesmo nome sejam criados no mesmo workflow.

Para resolver esse problema, você pode tentar uma das seguintes abordagens:

  1. Renomear o Artefato: Altere o nome do artefato para garantir que ele seja único. Você pode adicionar um sufixo com base na versão do Go ou no timestamp para garantir a unicidade.
- name: Upload a Build Artifact
  uses: actions/upload-artifact@v4.3.6
  with:
    name: programa-${{ matrix.go_version }}-${{ github.run_id }}
    path: main
  1. Verificar e Remover Artefatos Existentes: Antes de tentar fazer o upload, verifique se o artefato já existe e remova-o, se necessário. No entanto, essa abordagem pode ser mais complexa e envolver scripts adicionais.

  2. Remover a Estrutura de Matriz: Se você não precisa realmente compilar para múltiplas versões de Go simultaneamente, considere simplificar o workflow removendo a matriz, como sugerido nas instruções da aula.

build:
  needs: test
  runs-on: ubuntu-latest
  steps:
    - uses: actions/checkout@v3
    - name: Set up Go
      uses: actions/setup-go@v3
      with:
        go-version: '1.20'
    - name: Build
      run: go build -v main.go
    - name: Upload a Build Artifact
      uses: actions/upload-artifact@v4.3.6
      with:
        name: programa
        path: main

Bons estudos!

Consegui resolver assim. mas agora esta dando erro no docker quando vai fazer o push da iamgen

name: Go

on: push: branches: [ '' ] pull_request: branches: [ '' ]

jobs:

test: runs-on: ${{ matrix.os }} env: HOST: localhost PORT: 5432 USER: root PASSWORD: root DBNAME: root strategy: matrix: go_version: ['1.18', '1.17', '>=1.18'] os: ['ubuntu-latest', 'ubuntu-18.04'] steps: - uses: actions/checkout@v3

- name: Set up Go
  uses: actions/setup-go@v3
  with:
    go-version: ${{ matrix.go_version }}
  
- name: Build-DB
  run: docker-compose build
  
- name: Create-DB
  run: docker-compose up -d

- name: Test
  run: go test -v main_test.go 
  

build: needs: test runs-on: ubuntu-latest steps: - uses: actions/checkout@v3 - name: Build run: go build -v main.go

- name: Upload a Build Artifact
  uses: actions/upload-artifact@v3.1.0
  with:
# Artifact name
    name: programa
# A file, directory or wildcard pattern that describes what to upload
    path: main

docker: needs: build uses: ./.github/workflows/Docker.yml secrets: inherit

Estou com esse erro. sei que tem que colocar no github

Insira aqui a descrição dessa imagem para ajudar na acessibilidade