Skip to content

Commit

Permalink
ci: test build on arm64
Browse files Browse the repository at this point in the history
  • Loading branch information
oleg-jukovec committed Jan 17, 2025
1 parent b47eb9e commit d70fb51
Showing 1 changed file with 1 addition and 260 deletions.
261 changes: 1 addition & 260 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,78 +2,13 @@ name: publish

on:
push:
branches: [master]
tags: ['*']
workflow_dispatch:
pull_request:

env:
# Note: Use exactly match version of tool, to avoid unexpected issues with test on CI.
GO_VERSION: '1.22.10'

jobs:
create-packages-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}

- name: Setup Mage
run: |
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go
- name: Build OpenSSL 3.0
run: |
wget https://github.com/openssl/openssl/releases/download/openssl-3.0.8/openssl-3.0.8.tar.gz
tar -xvf openssl-3.0.8.tar.gz
cd openssl-3.0.8/
./Configure --prefix=${GITHUB_WORKSPACE}/openssl no-shared
make && make install
- name: Setup GoReleaser
run: |
curl -O -L https://github.com/goreleaser/goreleaser/releases/download/v1.12.3/goreleaser_1.12.3_amd64.deb
sudo dpkg -i goreleaser_1.12.3_amd64.deb
rm goreleaser_1.12.3_amd64.deb
- name: Set GoReleaser flags
id: set-goreleaser-flags
run: |
if ${{ startsWith(github.ref, 'refs/tags') }} ; then
echo "::set-output name=GORELEASER_FLAGS::--rm-dist --skip-validate"
else
echo "::set-output name=GORELEASER_FLAGS::--rm-dist --snapshot"
fi
# These scripts will be picked up while building packages with goreleaser.
- name: Generate ZSH and Bash completion scripts
run: |
mage build
./tt completion bash > tt-completion.bash
./tt completion zsh > tt-completion.zsh
- name: Build packages
env:
CGO_LDFLAGS: "-L${{ env.GITHUB_WORKSPACE }}/openssl/lib64"
CGO_CFLAGS: "-I${{ env.GITHUB_WORKSPACE }}/openssl/include"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
goreleaser release ${{ steps.set-goreleaser-flags.outputs.GORELEASER_FLAGS }} --skip-publish --config ./goreleaser/.goreleaser_linux.yml
- name: Upload packages artifacts
uses: actions/upload-artifact@v3
with:
name: packages-linux
path: dist

create-packages-linux-arm64:
runs-on: graviton
strategy:
Expand Down Expand Up @@ -104,197 +39,3 @@ jobs:
mage build
./tt completion bash > tt-completion.bash
./tt completion zsh > tt-completion.zsh
- name: Build packages
env:
CGO_LDFLAGS: "-L/opt/openssl/lib"
CGO_CFLAGS: "-I/opt/openssl/include"
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
goreleaser release ${{ steps.set-goreleaser-flags.outputs.GORELEASER_FLAGS }} \
--skip-publish --config ./goreleaser/.goreleaser_linux_arm64.yml
- name: Upload packages artifacts
uses: actions/upload-artifact@v3
with:
name: packages-linux-arm64
path: dist

create-packages-macos:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}

- name: Setup Mage
run: |
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go
- name: Build OpenSSL 3.0
run: |
wget https://github.com/openssl/openssl/releases/download/openssl-3.0.8/openssl-3.0.8.tar.gz
tar -xvf openssl-3.0.8.tar.gz
cd openssl-3.0.8/
./Configure --prefix=${GITHUB_WORKSPACE}/openssl no-shared
make && make install
echo "CGO_LDFLAGS=-L${GITHUB_WORKSPACE}/openssl/lib" >> $GITHUB_ENV
echo "CGO_CFLAGS=-I${GITHUB_WORKSPACE}/openssl/include" >> $GITHUB_ENV
- name: Set GoReleaser flags
id: set-goreleaser-flags
run: |
if ${{ startsWith(github.ref, 'refs/tags') }} ; then
echo "::set-output name=GORELEASER_FLAGS::--rm-dist --skip-validate"
else
echo "::set-output name=GORELEASER_FLAGS::--rm-dist --snapshot"
fi
- name: Build packages
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
uses: goreleaser/goreleaser-action@v2
with:
version: v1.26.2
args: release ${{ steps.set-goreleaser-flags.outputs.GORELEASER_FLAGS }} --skip-publish --config ./goreleaser/.goreleaser_macOS.yml

- name: Upload packages artifacts
uses: actions/upload-artifact@v3
with:
name: packages-macos
path: dist

draft-release:
needs: [create-packages-linux, create-packages-linux-arm64, create-packages-macos]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}

- name: Make directories
run: |
mkdir -p ./dist-prebuilt/packages-linux
mkdir -p ./dist-prebuilt/packages-macos
mkdir -p ./dist-prebuilt/packages-linux-arm64
- name: Download linux binaries
uses: actions/download-artifact@v3
with:
name: packages-linux
path: ./dist-prebuilt/packages-linux

- name: Download linux arm64 binaries
uses: actions/download-artifact@v3
with:
name: packages-linux-arm64
path: ./dist-prebuilt/packages-linux-arm64

- name: Download macos binaries
uses: actions/download-artifact@v3
with:
name: packages-macos
path: ./dist-prebuilt/packages-macos

- name: Remove not-needed files
run: |
rm ./dist-prebuilt/packages-linux/artifacts.json
rm ./dist-prebuilt/packages-linux/config.yaml
rm ./dist-prebuilt/packages-linux/metadata.json
rm ./dist-prebuilt/packages-linux-arm64/artifacts.json
rm ./dist-prebuilt/packages-linux-arm64/config.yaml
rm ./dist-prebuilt/packages-linux-arm64/metadata.json
rm ./dist-prebuilt/packages-macos/artifacts.json
rm ./dist-prebuilt/packages-macos/config.yaml
rm ./dist-prebuilt/packages-macos/metadata.json
rm ./dist-prebuilt/packages-macos/tt_darwin_amd64_v1/tt
rm ./dist-prebuilt/packages-linux/tt_linux_amd64_v1/tt
rm ./dist-prebuilt/packages-linux-arm64/tt_linux_arm64/tt
- name: Pack additional archives
run: |
./.gen_tarballs.sh -t ${{ github.ref_name }}
mv /tmp/gentoo_tarballs/tt*.tar.* ./dist-prebuilt/packages-linux/
- name: merge checksum file
run: |
cd ./dist-prebuilt
cat ./packages-linux/tt*checksums.txt >> checksums.txt
cat ./packages-linux-arm64/tt*checksums.txt >> checksums.txt
cat ./packages-macos/tt*checksums.txt >> checksums.txt
rm ./packages-linux/tt*checksums.txt
rm ./packages-linux-arm64/tt*checksums.txt
rm ./packages-macos/tt*checksums.txt
mv checksums.txt ./packages-macos/
- name: Set GoReleaser flags
id: set-goreleaser-flags
run: |
if ${{ startsWith(github.ref, 'refs/tags') }} ; then
echo "GORELEASER_FLAGS=--skip-validate" >> $GITHUB_OUTPUT
else
echo "GORELEASER_FLAGS=--snapshot" >> $GITHUB_OUTPUT
fi
- name: Release
uses: goreleaser/goreleaser-action@v2
with:
version: v1.26.2
args: release ${{ steps.set-goreleaser-flags.outputs.GORELEASER_FLAGS }} --config ./goreleaser/.goreleaser_publish.yml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

publish-s3:
needs: [create-packages-linux, create-packages-linux-arm64]
runs-on: ubuntu-latest
if: startsWith(github.ref, 'refs/tags')
steps:
- uses: actions/checkout@v4

- name: Setup Go
uses: actions/setup-go@v4
with:
go-version: ${{ env.GO_VERSION }}

- name: Setup Mage
run: |
git clone https://github.com/magefile/mage
cd mage
go run bootstrap.go
- name: Download x86_64 packages artifacts
uses: actions/download-artifact@v3
with:
name: packages-linux
path: dist

- name: Publish x86_64 packages to RWS
env:
RWS_URL_PART: https://rws.tarantool.org/release/modules
RWS_AUTH: ${{ secrets.RWS_AUTH }}
run: mage publishRWS && rm -rf dist

- name: Download arm64 packages artifacts
uses: actions/download-artifact@v3
with:
name: packages-linux-arm64
path: dist

- name: Publish arm64 packages to RWS
env:
RWS_URL_PART: https://rws.tarantool.org/release/modules
RWS_AUTH: ${{ secrets.RWS_AUTH }}
run: mage publishRWS

0 comments on commit d70fb51

Please sign in to comment.