Skip to content

Test env setup

Test env setup #12

Workflow file for this run

name: Build packages
# Big chunk of the build process logic is in the mage build targets
on:
workflow_call:
push:
branches: [master, ci-migration]
tags:
# Mage's `GenerateEnvFile` talks to GH API to setup tags, versions, etc.
env:
GITHUB_OWNER: mysteriumnetwork
GITHUB_REPO: node
GITHUB_SNAPSHOT_REPO: node-builds
GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }}
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
jobs:
setup-env:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- name: Prepare environment
run: |
RELEASE_BUILD=false
if [[ "${GITHUB_REF#refs/tags/}" != "" ]]; then RELEASE_BUILD=true; fi
RC_BUILD=false
if [[ "${GITHUB_REF#refs/tags/}" == "*-rc" ]]; then RC_BUILD=true; fi
SNAPSHOT_BUILD=false
if [[ "${GITHUB_REF}" == "refs/heads/master" ]]; then SNAPSHOT_BUILD=true; fi
PR_BUILD=false
if [[ SNAPSHOT_BUILD == "false" && RELEASE_BUILD == "false" ]]; then PR_BUILD=true; fi
BUILD_NUMBER="${{ github.run_id }}"-ghactions
if [[ RELEASE_BUILD == "true" ]]; then
BUILD_VERSION="${GITHUB_REF#refs/tags/}";
elif [[ SNAPSHOT_BUILD == "true" ]]; then
BUILD_VERSION="$(git describe --abbrev=0 --tags)"-1snapshot-"$(date '+%Y%m%dT%H%M')"-"$(echo ${GITHUB_SHA} | cut -c1-8)";
elif [[ PR_BUILD == "true" ]]; then
BUILD_VERSION="$(git describe --abbrev=0 --tags)"-1branch-"${GITHUB_REF_NAME}";
fi
echo "export RELEASE_BUILD=$RELEASE_BUILD";
echo "export RC_BUILD=$RC_BUILD";
echo "export SNAPSHOT_BUILD=$SNAPSHOT_BUILD";
echo "export BUILD_NUMBER=$BUILD_NUMBER";
echo "export BUILD_VERSION=$BUILD_VERSION";
# - name: Generate env file
# run: go run mage.go -v GenerateEnvFile
# - name: Create bucket
# if: github.event_name == 'push'
# run: go run mage.go -v MakeBucket
- uses: actions/upload-artifact@v4
with:
name: env.sh
path: build/env.sh
build-packages:
runs-on: ubuntu-latest
needs: [setup-env]
strategy:
max-parallel: 4
matrix:
platform:
- PackageLinuxRaspberryImage
- PackageLinuxAmd64
- PackageLinuxArm
- PackageLinuxDebianAmd64
- PackageLinuxDebianArm64
- PackageLinuxDebianArm
- PackageMacOSAmd64
- PackageMacOSArm64
- PackageWindowsAmd64
- PackageAndroid
- PackageAndroidProvider
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- uses: actions/download-artifact@v4
with:
name: env.sh
- name: Setup FPM
run: |
sudo apt-get install ruby-dev build-essential
sudo gem i fpm -f
- name: Build package
run: |
source env.sh
go run mage.go -v ${{ matrix.platform }}
build-swagger:
runs-on: ubuntu-latest
needs: [setup-env, build-packages]
steps:
- uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: '1.21.x'
- uses: actions/download-artifact@v4
with:
name: env.sh
- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_PASSWORD }}
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Build docker
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
run: |
source env.sh
go run mage.go -v PackageDockerSwaggerRedoc