Skip to content

Release 4.3.8 (#181) #7

Release 4.3.8 (#181)

Release 4.3.8 (#181) #7

Workflow file for this run

name: master-images
on:
push:
branches: [ master ]
jobs:
buildMacos13FastS3:
runs-on: macos-13
environment: Integration
steps:
- uses: actions/checkout@v3
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership
run: |
chown -R $(id -u):$(id -g) $PWD
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Symlink for libtool
run: |
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
ln -s /usr/local/bin/glibtool /usr/local/bin/libtool
- name: Add libraries to PATH
run: |
echo "LIBRARY_PATH=$(brew --prefix)/lib:$(brew --prefix)/opt:$(brew --prefix)/include" >> $GITHUB_ENV
- name: Deploy to S3
run: |
sh ./setup.sh --local
sh ./build.sh --system --parallel --upload --release
buildMacos12FastS3:
runs-on: macos-12
environment: Integration
steps:
- uses: actions/checkout@v3
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership
run: |
chown -R $(id -u):$(id -g) $PWD
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Symlink for libtool
run: |
ln -s /usr/local/bin/glibtoolize /usr/local/bin/libtoolize
ln -s /usr/local/bin/glibtool /usr/local/bin/libtool
- name: Add libraries to PATH
run: |
echo "LIBRARY_PATH=$(brew --prefix)/lib:$(brew --prefix)/opt:$(brew --prefix)/include" >> $GITHUB_ENV
- name: Deploy to S3
run: |
sh ./setup.sh --local
sh ./build.sh --system --parallel --upload --release
buildUbuntu22FastS3:
runs-on: ubuntu-22.04
environment: Integration
container:
image: ubuntu:jammy
steps:
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership and prep container
run: |
mkdir -p /usr/local/var
apt-get update && apt-get install -y apt-transport-https
apt-get install -y git curl nano sudo zip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Deploy to S3
run: |
sudo aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY }} && sudo aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} && sudo aws configure set default.region ${{ secrets.AWS_REGION }}
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
chown -R root $PWD
sudo sh ./setup.sh --local
sudo sh ./build.sh --system --parallel
gridlabd python -m pip install awscli
sudo sh ./build.sh --upload --release
buildUbuntu20FastS3:
runs-on: ubuntu-20.04
environment: Integration
container:
image: ubuntu:focal
steps:
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership and prep container
run: |
mkdir -p /usr/local/var
apt-get update && apt-get install -y apt-transport-https
apt-get install -y git curl nano sudo zip
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
- uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Deploy to S3
run: |
sudo aws configure set aws_access_key_id ${{ secrets.AWS_ACCESS_KEY }} && sudo aws configure set aws_secret_access_key ${{ secrets.AWS_SECRET_ACCESS_KEY }} && sudo aws configure set default.region ${{ secrets.AWS_REGION }}
export GIT_DISCOVERY_ACROSS_FILESYSTEM=1
chown -R root $PWD
sudo sh ./setup.sh --local
sudo sh ./build.sh --system --parallel
gridlabd python -m pip install awscli
sudo sh ./build.sh --upload --release
buildAWSUbuntuAMI:
runs-on: ubuntu-latest
environment: Integration
needs: [buildUbuntu22FastS3,buildUbuntu20FastS3,buildMacos12FastS3]
steps:
- uses: actions/checkout@v3
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership
run: |
chown -R $(id -u):$(id -g) $PWD
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Run CF invalidation
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.PROD_CF_ID }} --paths '/*'
- name: Set output
run: |
echo "VERSION=Arras Energy HiPAS GridLAB-D $(./build-aux/version.sh --version)" >> $GITHUB_ENV
echo "TAGNAME=gridlabd/$(./build-aux/version.sh --version)-$(./build-aux/version.sh --number)-$(./build-aux/version.sh --branch)" >> $GITHUB_ENV
- name: Install Packer
run: |
wget https://releases.hashicorp.com/packer/1.7.6/packer_1.7.6_linux_amd64.zip
unzip packer_1.7.6_linux_amd64.zip
sudo mv packer /usr/local/bin
- name: Initialize Packer
run: |
packer init ./docker/packer/prod.pkr.hcl
- name: Build AMI Image
run: |
packer build \
-var "aws_access_key=${{ secrets.AWS_ACCESS_KEY }}" \
-var "aws_secret_key=${{ secrets.AWS_SECRET_ACCESS_KEY }}" \
-var "aws_region=${{ secrets.AWS_REGION }}" \
-var "prod_s3_url=${{ secrets.PROD_S3_URL }}" \
-var "version=${{ env.VERSION }}" \
-var "tagname=${{ env.TAGNAME }}" \
./docker/packer/prod.pkr.hcl
buildUbuntuDockerhub:
runs-on: ubuntu-latest
environment: Integration
needs: buildUbuntu22FastS3
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v1
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Run CF invalidation
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.PROD_CF_ID }} --paths '/*'
- name: Set output
run: |
echo "VERSION=$(./build-aux/version.sh --version)" >> $GITHUB_ENV
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Build Docker image
uses: docker/build-push-action@v2
with:
context: .
file: ./docker/packer/Dockerfile.prod.ul
push: true
tags: lfenergy/arras:latest, lfenergy/arras:${{ env.VERSION }}
updateS3websites:
runs-on: ubuntu-latest
environment: Integration
steps:
- uses: actions/checkout@v3
# this is to fix GIT not liking owner of the checkout dir
- name: Set ownership
run: |
chown -R $(id -u):$(id -g) $PWD
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Website s3 sync
run: |
aws s3 sync ./cloud/websites/code.gridlabd.us/ s3://code.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/docs.gridlabd.us/ s3://docs.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/geodata.gridlabd.us/ s3://geodata.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/install.gridlabd.us/ s3://install.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/status.gridlabd.us/ s3://status.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/tutorials.gridlabd.us/ s3://tutorials.gridlabd.us --acl public-read
aws s3 sync ./cloud/websites/www.gridlabd.us/ s3://www.gridlabd.us --acl public-read
- name: Run CF invalidation
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.PROD_CF_ID }} --paths '/*'
versionUpdate:
runs-on: ubuntu-latest
environment: Integration
needs: buildAWSUbuntuAMI
steps:
- name: Checkout code
uses: actions/checkout@v3
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@v2
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}
- name: Install dependencies and package Lambda function
run: |
pip install -r ./cloud/websites/version.gridlabd.us/lambda/requirements.txt -t ./cloud/websites/version.gridlabd.us/lambda/package
cd ./cloud/websites/version.gridlabd.us/lambda/package
zip -r ../lambda.zip .
cd ..
zip -r lambda.zip app.py
- name: Update Lambda image version_handler
run: |
aws lambda update-function-code --function-name version_handler --zip-file fileb://$(pwd)/cloud/websites/version.gridlabd.us/lambda/lambda.zip
- name: Update Lambda image update_latest
run: |
aws lambda update-function-code --function-name update_latest --zip-file fileb://$(pwd)/cloud/websites/version.gridlabd.us/lambda/lambda.zip
- name: Make POST request to version.gridlabd.us/update
run: |
version=$(./build-aux/version.sh --version)
build=$(./build-aux/version.sh --number)
branch=$(./build-aux/version.sh --branch)
curl -f -X POST "https://version.gridlabd.us/update_latest" \
-H "Content-Type: application/json" \
-d "{\"version\": \"$version\", \"build\": \"$build\", \"branch\": \"$branch\", \"sk\": \"${{ secrets.MASTERSK }}\"}"