Ошибка действий Github Не удалось найти действие
У меня есть простое приложение nodejs на GitHub, и я хочу создать образ докера и отправить его на AWS ECR с помощью действий GitHub.
aws.yml: -
name: foo-bar CI
on:
pull_request:
branches:
- sandbox
push:
branches:
- sandbox
env:
AWS_REPOSITORY_URL: ${{ secrets.AWS_REPOSITORY_URL }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
jobs:
build-and-push:
name: Build and push image to AWS ECR
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@master
- name: Check REPO url
run: echo $AWS_REPOSITORY_URL
- name: Setup ECR
run: $( aws ecr get-login --no-include-email --region ap-south-1)
- name: Build and tag the image
run: docker build -t $AWS_REPOSITORY_URL .
- name: Push
run: docker push $AWS_REPOSITORY_URL
Я добавил AWS_REPOSITORY_URL, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY в домашний репозиторий> настройки> секреты.
Я уверен, что ввел правильные значения, я также использую эти значения в gitlab-ci, и он работает.
Когда я нажал на ветку песочницы, задание CI запустилось и выдало следующую ошибку:
Current runner version: '2.263.0'
Operating System
Ubuntu
18.04.4
LTS
Virtual Environment
Environment: ubuntu-18.04
Version: 20200525.2
Included Software: https://github.com/actions/virtual-environments/blob/ubuntu18/20200525.2/images/linux/Ubuntu1804-README.md
Prepare workflow directory
Prepare all required actions
Download action repository 'actions/checkout@sandbox'
##[error]An action could not be found at the URI 'https://api.github.com/repos/actions/checkout/tarball/sandbox'
Что я делаю неправильно? Есть ли в моем YML-файле ошибки?
Судя по логам, на этапе оформления заказа задание не выполняется. Он пытается что-то загрузить с https://api.github.com/repos/actions/checkout/tarball/sandbox, что дает 404 (я пытался открыть URL-адрес в браузере). Думаю, следовало попытаться скачать с https://api.github.com/repos/actions/checkout/tarball/master. Я не уверен, почему он так себя ведет.
2 ответа
По какой-то причине GitHub неправильно интерпретирует Checkout
шаг.
Он использовал actions/checkout@sandbox
вместо того actions/checkout@master
во время казни. Наверное, это ошибка вhttps://github.com/aws-actions/
с master
ветвь. Вместо этого я попробовал тег v2, и он сработал.
Итак, обновленный этап оформления заказа -
- name: Checkout
uses: actions/checkout@v2
Если вы разрабатываете собственное действие, также убедитесь, что репозиторий, на который вы пытаетесь сослаться, является общедоступным.