Skip to content

Add PACKER_GITHUB_API_TOKEN #160

Add PACKER_GITHUB_API_TOKEN

Add PACKER_GITHUB_API_TOKEN #160

---
name: takelbuild amd64
on:
push:
workflow_dispatch:
jobs:
takelbuild-amd64:
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags/')
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Set up ruby
uses: ruby/setup-ruby@v1
with:
ruby-version: ruby
- name: Install tau
run: gem install takeltau
- name: Configure tau
run: |
echo "docker_entrypoint_options: --no-git --no-gopass --no-gpg --no-ssh" >> $HOME/.takelage.yml
echo "docker_repo: takelbuild" >> $HOME/.takelage.yml
echo "docker_tag: latest-amd64" >> $HOME/.takelage.yml
cat $HOME/.takelage.yml
- name: Pull takelage image
run: tau update
- name: Read mutagen version
run: |
MUTAGEN=$(docker inspect --format '{{ index .Config.Labels "mutagen" }}' takelwerk/takelbuild:latest-amd64)
echo "MUTAGEN=$MUTAGEN" >> "$GITHUB_ENV"
- name: Install mutagen
run: |
MUTAGEN_FILE=https://github.com/mutagen-io/mutagen/releases/download/v${{ env.MUTAGEN }}/mutagen_linux_amd64_v${{ env.MUTAGEN }}.tar.gz
wget --header="Authorization: Bearer ${{ secrets.GITHUB_TOKEN }}" -O /tmp/mutagen.tar.gz $MUTAGEN_FILE
sudo tar xvfz /tmp/mutagen.tar.gz -C /usr/local/bin
mutagen daemon start
- name: Start an instance of takelage
run: tau docker container daemon
- name: Install lastversion
run: tau docker container command "sudo pip install lastversion --break-system-packages"
- name: Lint ruby
run: tau docker container command "rake rubylint"
- name: Lint takelbuild
run: tau docker container command "rake images:takelbuild:molecule:lint"
- name: Test takelscripts
run: tau docker container command "rake takelscripts"
- name: Build takelbuild intermediate image with packer
run: tau docker container command "rake images:takelbuild:build:to:06-ruby"
- name: Build takelbuild image from intermediate image with packer
run: tau docker container command "rake images:takelbuild:build:from:06-ruby"
- name: Test takelbuild image
run: tau docker container command "rake images:takelbuild:molecule:test"
- name: Login to docker hub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Tag and push image
run: |
tau docker container command "rake dockerhub:takelbuild:tag:latest:amd64"
tau docker container command "rake dockerhub:takelbuild:push:latest:amd64"
tau docker container command "rake dockerhub:takelbuild:tag:version:amd64"
tau docker container command "rake dockerhub:takelbuild:push:version:amd64"
- name: Pull arm64 latest image
run: |
tau docker container command "rake dockerhub:takelbuild:pull:latest:arm64"
- name: Create and push docker latest manifest
run: |
tau docker container command "rake dockerhub:takelbuild:manifest:create:latest"
tau docker container command "rake dockerhub:takelbuild:manifest:push:latest"
- name: Create and push docker version manifest if arm64 version image exists
run: |
if tau docker container command "rake dockerhub:takelbuild:pull:version:arm64"; then \
tau docker container command "rake dockerhub:takelbuild:manifest:create:version" && \
tau docker container command "rake dockerhub:takelbuild:manifest:push:version"; fi